Add Custom Prompt Parameter

Description
Added a new parameter to the Vectara Index, prompt_text, which allows users to specify custom prompts for their Vectara queries.
Version Bump?
Did I bump the version in the pyproject.toml file of the package I am updating? (Except for the llama-index-core package)

[x] Yes

Type of Change
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)

How Has This Been Tested?
I added a new unit test, test_custom_prompt(), which tests this new functionality.

[x] I added new unit tests to cover this change

Suggested Checklist:

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] I ran make format; make lint to appease the lint gods

I'm very confused why CICD is failing to install deps 😓

hmmm, locally with the same deps, I get no module found named numpy when installing... pandas?

Going to tentatively merge for now, seems fine imo, really strange


Make error: /usr/bin/ld: cannot find -lgfortran

This is the error I get after using make:
/usr/bin/ld: cannot find -lgfortran
The same happens if I build with

make FC=gfortran

CPU is a Intel i7-3720QM CPU @ 2.60GHz and gfortran (4.6.4) is installed.
What am I doing wrong?

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/8839204-make-error-usr-bin-ld-cannot-find-lgfortran?utm_campaign=plugin&utm_content=tracker%2F69691&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F69691&utm_medium=issues&utm_source=github).

I think the library was built fine. You need to use gfortran as the linker.

Thanks for your quick answer. I had a wrong symbolic link which pointed to the wrong version of gcc. It works now.

How did you solve your symbolic link problem? I have the same problem

How did you solve your symbolic link problem? I have the same problem


24-1 nodes handler could return empty response then filter with path

https://github.com/pixcc/ydb/blob/main/ydb/core/viewer/json_nodes.h#L394
It seems that checking for zero is not enough to check the root and the handle may go into a loop
need to check in the viewer to PathId == RootPathId (=1); and that Path is the first segment of the path

https://github.com/ydb-platform/ydb/pull/4792


Strict groups support

@staabm

I think these should be doable in a similar way you did in this PR

I am not sure how to do the non-null part. Maybe it's doable by modifying the result of $this->regexShapeMatcher->matchType() to ensure string|null becomes string.. but I suck at phpstan internals :D
If you have a sec to help any time it'd be great, I believe the tests are correct.

wdyt about
$ git diff
diff --git a/src/PHPStan/PregMatchTypeSpecifyingExtension.php b/src/PHPStan/PregMatchTypeSpecifyingExtension.php
index b83ed12..7ee7ec5 100644
--- a/src/PHPStan/PregMatchTypeSpecifyingExtension.php
+++ b/src/PHPStan/PregMatchTypeSpecifyingExtension.php
@@ -11,8 +11,11 @@
 use PHPStan\Analyser\TypeSpecifierContext;
 use PHPStan\Reflection\MethodReflection;
 use PHPStan\TrinaryLogic;
+use PHPStan\Type\Constant\ConstantArrayType;
 use PHPStan\Type\Php\RegexArrayShapeMatcher;
 use PHPStan\Type\StaticMethodTypeSpecifyingExtension;
+use PHPStan\Type\TypeCombinator;
+use PHPStan\Type\Type;

 final class PregMatchTypeSpecifyingExtension implements StaticMethodTypeSpecifyingExtension, TypeSpecifierAwareExtension
 {
@@ -70,6 +73,22 @@ public function specifyTypes(MethodReflection $methodReflection, StaticCall $nod
             return new SpecifiedTypes();
         }

+        if (
+            in_array($methodReflection->getName(), ['matchStrictGroups', 'isMatchStrictGroups'], true)
+            && $matchedType instanceof ConstantArrayType
+        ) {
+            $matchedType = new ConstantArrayType(
+                $matchedType->getKeyTypes(),
+                array_map(static function (Type $valueType): Type {
+                    return TypeCombinator::removeNull($valueType);
+
+                }, $matchedType->getValueTypes()),
+                [0],
+                [],
+                $matchedType->isList()
+            );
+        }
+
         $overwrite = false;
         if ($context->false()) {
             $overwrite = true;

I am not 100% sure, I got the difference of 'matchStrictGroups' vs. 'isMatchStrictGroups'.

Yeah that looks great thanks!

Hmm if it matches it cannot, but it is still allowed to NOT match. It only throws if it matches but some groups are null, thus improving the type safety within the code handling the matches as we know we don't have to check for nulls.. Now with better support for optional groups etc in PHPStan this whole thing might be less needed or not at all anymore tbh. I'll have to see.

BTW there was a deprecation warning on $matchedType instanceof ConstantArrayType which I hacked around, possibly wrong :)

Woops, that does not go so well on the composer repo:
     Internal error: Internal error. while analysing file /var/www/composer/src/Composer/Repository/Vcs/GitHubDriver.php
     Post the following stack trace to https://github.com/phpstan/phpstan/issues/new?template=Bug_report.yaml:
     ## phar:///var/www/composer/vendor/phpstan/phpstan/phpstan.phar/src/Type/Constant/ConstantArrayTypeBuilder.php(150)
     #0 phar:///var/www/composer/vendor/phpstan/phpstan/phpstan.phar/src/Type/Constant/ConstantArrayType.php(576):
     PHPStan\Type\Constant\ConstantArrayTypeBuilder->setOffsetValueType()
     #1 phar:///var/www/composer/vendor/phpstan/phpstan/phpstan.phar/src/Type/TypeCombinator.php(915):
     PHPStan\Type\Constant\ConstantArrayType->setOffsetValueType()

how to reproduce?


setting up request status page

The request status page is now being setup up. Ability to fill out form and submit to create record in database is implemented.
I welcome your valuable comments

@cayeronwi , @Rinkalbhatia1 , @oawhad , @ekta333 , Thanks for the reviews and approval


feat(quickstart): Simplify docker generate and compare script

There is docker/monitoring/docker-compose.monitoring.yml but docker/quickstart/docker-compose.quickstart.monitoring.yml. If both filenames follow the same naming scheme, i.e. docker-compose.monitoring.quickstart.yml, then some code duplication in docker/quickstart/generate_and_compare.sh could be reduced:
for flavour in "" "-without-neo4j" ".monitoring"
do
  if cmp docker-compose$flavour.quickstart.yml temp$flavour.quickstart.yml; then
    printf 'docker-compose$flavour.quickstart.yml is up to date.'
  else
    printf 'docker-compose$flavour.quickstart.yml is out of date.'
     exit 1
  fi
done

There might more quickstart scripts being added in the future, e.g. for #3261 (see https://github.com/EnricoMi/datahub/pull/6/files#diff-135ef7fb531c210baeeab0b42a4e2589366367ea773e52c524140844eb583b8b) which would benefit from this.

@gabe-lyons is this good to go?

@EnricoMi : sorry for the radio silence on this one, we'll shepherd this in this week.


ion-footer does not respect $background-color

Ionic version:  (check one with "x")
[ ] 1.x
[X ] 2.x
I'm submitting a ...  (check one with "x")
[X ] bug report
[ ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:
See title
I have tried various ways to set this with no success.
Not really sure if it is a bug or feature but you can see what I want to do.
Expected behavior:
I would expect the footer to respect background-color: $background-color;
Related code:
SCSS
.aever-footer {
padding: 0em;
background-color: $background-color;
}
HTML
<ion-footer>
  <ion-toolbar>
    <div class="aever-footer">
      aever 0.0.1
    </div>
  </ion-toolbar>
</ion-footer>

Ionic info: (run ionic info from a terminal/cmd prompt and paste output below):
ionic info

Dependency warning - for the CLI to run correctly,
it is highly recommended to install/upgrade the following:
Please install your Cordova CLI to version  >=4.2.0 npm install -g cordova

Your system information:
You have been opted out of telemetry. To change this, run: cordova telemetry on.
6.5.0
Ionic Framework Version: 2.0.0-rc.5
Ionic CLI Version: 2.2.1
Ionic App Lib Version: 2.2.0
Ionic App Scripts Version: 1.0.0
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 10
Node Version: v6.9.2
Xcode version: Not installed

So by design the ion-footer has no styling it is just a container element. In your particular case, the ion-toolbar background is "covering up" the footer. If you were to do this:
<ion-footer style="background-color: lightgreen;">
  <ion-toolbar transparent>
    ...
  </ion-toolbar>
</ion-footer>

You would see the styling on the footer:


Define process for documenting test cases

User story
As a core developer I want to know what positive and negative test cases exist when i am writing or updating our source code.
Rationale
We are implementing more integration and regression tests into our QA protocols. These should be documented in a human readable and auditable way, so that we can understand our test coverage easily.
Implementation details

[ ] create proposal for documenting test cases
[ ] create proposal for test case maintenance/update process
[ ] discuss with team and get sign-off
[ ] implement for current test cases

Priority
4/5
Size
M
What does "done" look like?
Test cases are documented, process is documented
Deadline
tbc

@jmcook1186 again I think this one is covered by #615 (unless we are talking about unit tests?) the SoW here translates to the SoW for how we maintain a folder of manifest files that act as our test cases.
Makes sense to me to close this one and I'll merge the SoW for all of the other tickets in the the main one about creating a folder of manifest files that we use for testing.

Agree, closing as superseded by #615


Add 'More Guides' section

Add 'More Guides' section to end of Guides with

[x] Emerald Academy Quickstarts
[x] Cadence Docs site Tutorials
[x] Cadence Cookbook
[x] Todo App
[x] NFT Marketplace
[x] Composable NFTs
[x] Twitter Clone.

#507


[Feature] “Pub” list

This software is beautiful and practical, it's very nice! But I personally think that one feature is missing, which is the "pub" list. Just like mqtt.fx, as attached screenshot.

Although it is now possible to record published messages, it is still inconvenient for publishing messages of different topics. So I hope this feature can be added.

@Aaron-mo Hi! Thank you for your high evaluation and praise! I'm very grateful!
And based on your description, I think you need a feature to quickly select some common topics in the "Pub" list when publishing payload? If this is the case, this would be a good suggestion.

Yes, as you said.


Please review my profile, project and portfolio

Items we can review on a live stream:

Profile: https://github.com/dhausser
Project: https://github.com/dhausser/wanderlost
Portfolio: https://www.davyhausser.com/showcase/

You can also join the discord community here
Feel free to check out other cool repositories of Eddie Jaoude Community here

Reviewed on a live stream, thank you for sharing 👍 https://www.youtube.com/watch?v=LyTUj6YQoBo


[Cinder-csi-plugin] CSIVolumehealth adoption

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:
/kind bug
/kind feature

What happened:
https://kubernetes-csi.github.io/docs/volume-health-monitor.html
https://kubernetes.io/blog/2021/04/16/volume-health-monitoring-alpha-update/
has been a alpha feature for CSI
we can introduce this as optional (because it's still alpha)
Trigger controller RPC to check the health condition of the CSI volumes.
The external controller sidecar will also watch for node failure events

    The external health monitor agent will be deployed as a sidecar together with the CSI node driver on every Kubernetes worker node.
    Trigger node RPC to check volume's mounting conditions.

What you expected to happen:
How to reproduce it:
Anything else we need to know?:
Environment:

openstack-cloud-controller-manager(or other related binary) version:
OpenStack version:
Others:

/assign

/remove-lifecycle stale

/remove-lifecycle stale

/remove-lifecycle stale


Draft: Add SBOM guidelines

Extensive documentation of the structure of Red Hat's SBOMs.

@twaugh I still need to finish documenting the exact fields for the different component types, but the intro should be ready for review. I'd like to make sure we have all of the SBOM types documented clearly.


Icons are gone in V12

Hi, I was very happy to see a new release so I immediately updated, rebuilt and tested. Now all the icons are gone. Are there any breaking changes I should've been aware of?

@davazlan
We are investigating this, and should be able to release a fix for this today.

Fixed with v0.12.1 (https://www.nuget.org/packages/Blazority/0.12.1).
New version:
https://blazority.com/
https://62a7376c85fbfe48c91b152c--blazority.netlify.app


Cleanup Nt* and Zw* api definitions

Various rules have just the Nt* function or just the Zw* function. Some have both.
Example: NtQuerySystemInformation listed but ZwQuerySystemInformation was missing (until upcoming PR here).
Cleaning this up would solve it for the current rules, but what about future ones?

add a lint? (we have a semi-related lint for "feature api may overlap with ntdll and ntoskrnl")
modify a) the feature extractor or b) the rule parser to emit Nt*/Zw*/... extractor

downside: could emit non-existing apis
upside: easier rule writing

i think adding a lint for this is a great idea

as you mentioned for (2), i don't really like the idea of emitting, particularly because things like show-features will list function APIs that potentially don't exist.


Request: additional option for hopper interaction with protected chest

As requested from the Discord support channel, I would like to suggest an additional flag for hopper interaction that would allow hoppers to feed into a protect chest while also preventing hoppers from emptying that same chest.

As mentioned I think it's a good idea. The hopper config right now is not very flexible. Hopefully someone or myself has time to look into this for one of the coming updates.

Adding "open to pr" in case someone wants to look into adding this feature


Implement bytes keyword.

This commit adds the "bytes" keyword to the language. It can be used to read arbitrary sequences of bytes similar to the int8 family of keywords. The major difference here is you can use it to read arbitrary sequences into strings and compare them.
The implementation is done by dynamically allocating memory for each bytes operation and tracking all the allocations during bytecode execution in a notebook and destroying that notebook when execution is done.
An obvious optimization to make here is to track allocation offset and lengths so that we don't have lots of unnecessary allocations done in loops, like this:
for any s in ("foo", "bar"): (bytes(0, 3) == s)
While the above is an obviously contrived example it does make sense to avoid unnecessary allocations if we already have them.
Discussed in https://github.com/VirusTotal/yara/issues/1780 by @metthal.

Some obvious follow-ups to this that would improve it's usefulness is having the ability to convert a SIZED_STRING to it's hexlified equivalent and vice-versa. I think this belongs in the string module proposed in https://github.com/VirusTotal/yara/pull/1779, and I'm happy to add it if this is deemed a good idea. Also, I'll add docs before merging, just let me know what you think!
One way this is useful is for the times a hash of a blob is embedded in the file and you want to be able to check it. Here is a silly example of how you could check that:
wxs@mbp yara % cat ~/x
I AM A STRING|fd09d734380f7d6fc88655e19d6a5097ee0d1f2beefeaa59358c050bc4d586eewxs@mbp yara % xxd ~/x
00000000: 4920 414d 2041 2053 5452 494e 477c 6664  I AM A STRING|fd
00000010: 3039 6437 3334 3338 3066 3764 3666 6338  09d734380f7d6fc8
00000020: 3836 3535 6531 3964 3661 3530 3937 6565  8655e19d6a5097ee
00000030: 3064 3166 3262 6565 6665 6161 3539 3335  0d1f2beefeaa5935
00000040: 3863 3035 3062 6334 6435 3836 6565       8c050bc4d586ee
wxs@mbp yara % cat rules/test.yara
import "hash"

rule a {
  condition:
    hash.sha256(0, 13) == bytes(filesize - 64, 64)
}
wxs@mbp yara % ./yara rules/test.yara ~/x
a /Users/wxs/x
wxs@mbp yara %

Hello !
I believe that if the ensure_defined macro fires in OP_READ_BYTES, the code will break out of the switch and loop again, and the yara VM stack will be misaligned.
The operation looks like it consumes the top two values and puts back the result (undefined if error), however if ensure_defined breaks, no value is put back onto the stack.
Also, it would be nifty if it would continue reading from the next block if the range happens to coincide with a block boundary.

Good point! I forgot about that. I've got some planned updates for this and I will include your suggestion too. Thank you for pointing it out!

OK, so other than not working across block boundaries I think I'm mostly happy with this implementation now. I think the limits are very conservative but they can be easily tweaked. In fact, I think it probably makes sense to move them to runtime configuration options available via the API.
I'll dig into the cross block boundaries soon but I think the implementation (and even the idea) is ready for a wider discussion. If it is starting to look like it might be merged I'll do the work to update docs and expose it as some configuration options.

I'm going to close this out as it isn't completely ready (it doesn't work cross blocks) and I want to focus all new efforts on yara-x in the upcoming year.


Visible triggers should clear question's answer. Issue in multi level dependent question.

Here's the scenario.
-Q1
---Q2
--------Q3
Q1's answer triggers Q2. Q2's answer triggers Q3.
Now first user answer Q1 which makes Q2 visible. Then answer Q2 which makes question Q3 visible.
Now if user change answer of Q1 it will make Q2 invisible but as Q2's answer is not cleared Q3 will be visible. Which is kind of illegal state.
Q1
---------Q3
Here's the json to reproduce the scenario.
Steps:
Q1 = 1
Q2 = 1
Q3 = 1
now before submitting set
Q1 = 2
{
clearInvisibleValues: true,
pages: [
{
name: "page1",
questions: [
{
type: "radiogroup",
choices: [
"one",
{
value: "two",
text: "second value"
},
{
value: "three",
text: "third value"
}
],
name: "question1"
},
{
type: "radiogroup",
choices: [
"one",
{
value: "two",
text: "second value"
},
{
value: "three",
text: "third value"
}
],
indent: 1,
name: "question2",
visible: false
},
{
type: "radiogroup",
choices: [
"one",
{
value: "two",
text: "second value"
},
{
value: "three",
text: "third value"
}
],
indent: 2,
name: "question3",
visible: false
}
]
}
],
triggers: [
{
type: "visible",
operator: "equal",
value: "one",
name: "question1",
questions: [
"question2"
]
},
{
type: "visible",
operator: "equal",
value: "one",
name: "question2",
questions: [
"question3"
]
}
]
}

Hi,
Well, the question2 still equals 'one', even after it becomes invisible You may use the setValue trigger, to make the 'question2' empty. Please take a look at: http://surveyjs.org/builder/?surveyid=4be0c4b3-a6f5-472b-a097-f8886acceed8
Will it work for you?
Thank you,
Andrew

Please take a look at this demo: http://surveyjs.org/examples/condition-kids.html.
It should do exactly, what you needed.


Adding Backtracking algo

Description
Please include a summary of the change and which topic is added. Please also include relevant motivation and context.
Fixes #7
Backtracking algorithm added
Please delete options that are not relevant.

[x] Added Algorithm

Added to SUMMARY.md (delete section if not needed)?
Have you added the page to SUMMARY.md if this is a new page and not a fix?

[x] Yes
[ ] No

@allcontributor add @Sanjana00 for contributing to documentation

@allcontributors add @Sanjana00 for contributing to documentation


Create side drawer and update logos

What type of PR is this? (check applicable) 🚧

[X] ♻ Refactor
[X] ✨ Feature
[X] 🐛 Bug Fix
[ ] 👷 Optimization
[ ] 📝 Documentation Update
[ ] 🔖 Release
[ ] 🚩 Other

Describe your PR request 🔥

Changed modals to side drawers for event attendee information using Zustand
Added new CougarCS logos
Fixed CSS of components
Fixed login functionality bug

Fantastic! Thanks Brandon 🚀


⚠ Bofrost.es has degraded performance

In 06c4225, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1597 ms

Resolved: Bofrost.es performance has improved in 71258b4 after 6 minutes.


proposed transactions: get_full_accounts needs to notify ChainStore of any proposed transaction chagnes

I can create new proposals, but they do not show up in the ChainStore until I refresh the application.  The accounts are subscribed via get_full_accounts.

Assigning this to @bytemaster who best understands the subscription system

This turns out to be an issue of get_full_accounts and not the chainstore ..
Assuming I have this setup:

Account fabian-secured requires approval by fabian and secured-by-peermit

get_full_accounts on  fabian:
"proposals": [],

get_full_accounts on fabian-secured:
                {
                    "required_owner_approvals": [],
                    "required_active_approvals": [
                        "1.2.99212"
                    ],
                    "available_owner_approvals": [],
                    "available_key_approvals": [],
                    "expiration_time": "2016-01-21T09:04:08",
                    "available_active_approvals": [
                        "1.2.99149"
                    ],
                    "id": "1.10.60",
                    "proposed_transaction": {
                        "operations": [
                            [
                                0,
                                {
                                    "fee": {
                                        "amount": 3000000,
                                        "asset_id": "1.3.0"
                                    },
                                    "amount": {
                                        "amount": 10000000,
                                        "asset_id": "1.3.0"
                                    },
                                    "from": "1.2.99212",
                                    "to": "1.2.880",
                                    "extensions": []
                                }
                            ]
                        ],
                        "expiration": "2016-01-21T09:04:08",
                        "ref_block_num": 0,
                        "extensions": [],
                        "ref_block_prefix": 0
                    }
                }
            ],

I've modified the ChainStore in order to handle incoming proposal objects and add them to the relevant account objects in this commit: https://github.com/cryptonomex/graphene-ui/commit/86cee9e53c4c3edda16533f3557303be1e0780b0
However, this is not sufficient for proposals that require the approval of multi-sig accounts. The required_approval arrays only contain the parent account, not the actual accounts required.
Say 1.2.1 requires the approval of 1.2.2 and 1.2.3. A proposal for a transfer from 1.2.1 will show up with "required_active_approvals": ["1.2.1"], not ["1.2.2", "1.2.3"], and those two accounts will not have any indication that their approval is required.
Two changes are needed:

Include the actual required accounts in the required_*_approvals arrays instead of the parent account
Include all relevant proposals in get_full_account (this might get fixed by the above change)

Setting this to high priority since it's the only thing stopping us from releasing proposed transactions in the GUI, opening up lots of new possibilities with multi-sig etc.

@theoreticalbts @bytemaster can we get some feedback on this please?

Bump

I reassigned this bug to @theoreticalbts since I am sure it can be fixed easily by adding those proposals to the get_full_account output require my approval as well as those that concern the account directly.

This ticket is actually very non-trivial.
The required approvals on the proposal_object can't be changed, they are what they are because that's what's actually used by the blockchain permission system.  What's actually needed here is the client needs to know the result of the recursive permission traversal used by the chain.
It is very tempting to simply modify the API call to return an extended object, which has the same fields, but additionally includes the result of the traversal.  A similar approach is used in e.g. #253 to add fields indicating the block_id and signing_key to the signed_block.
However there is a critical difference:  The signed_block_with_info fields can be derived from the signed_block fields, but an account's authorities (and hence the result of the traversal) are chain state which can change, and there's no good way to push those changes to the client.
I think the correct approach is to implement a new object type which is a (proposal_id, account_id) pair which indicates that account can sign proposal.  Then whenever an account authority changes, we re-recurse any proposal.

I think the correct approach is to implement a new object type which is a (proposal_id, account_id) pair which indicates that account can sign proposal. Then whenever an account authority changes, we re-recurse any proposal.

Could this be done the other way round, too? So that I can get a list of proposals available for signature/approval by account_id?

@xeroc : Yep!  Querying the relation both ways is definitely useful, so we should add index to query it both ways.

This issue was moved to bitshares/bitshares-core#161


Feature/touch controll bar

Fix electron install #44

I don’t think it makes sense to fix it this way. This would break it for all other architectures. I think we should check for armv7 architecture  in the install script and then add the .npmrc file.

You're right using the  install script is much better.


regression ambiance: language manager tab

there is still a problem, see the PR
https://github.com/twosigma/beaker-notebook/pull/3348

cannot repro


Rearrange pages in PDF output

There's one feature I couldn't find. Can I rearrange pages? I would like to print a pamphlet on two sides of the same paper, and for that reason I would like the pages to be 4, 1, 2, 3. Do you (or will you) support rearranging pages in this manner?

(Image source and more information: https://www.loc.gov/collections/broadsides-and-other-printed-ephemera/articles-and-essays/page-order-and-folding-diagrams/ )

c.f #187

This is out of scope for Typst. However, it can easily be done with other tools in a pre-print workflow.


Webtorrent using unnecessarilly using too much cpu

WebTorrent version:0.3.3
Node.js version:5.0.0
Browser name/version (if using WebTorrent in the browser):

@rjdp This is a known issue with the desktop app that will be fixed in around 7 weeks. See https://github.com/feross/webtorrent-desktop/issues/353 for more information.

tnx.

Sure thing.

FYI:
As a stopgap solution for OS X only, we are going to disable WebRTC peers in the next version of WebTorrent (v0.4.0) since the 100% CPU issue is makes the app look broken, when it's not even our fault.
Once Chrome 51 is included in Electron, we'll undo this change and re-enable WebRTC peers on OS X.
PR here: #511


Add generic option for disk format

We have 2 prs open for trying to fix this issue.
I tend to like the generic solution
https://github.com/dmacvicar/terraform-provider-libvirt/pull/183#issuecomment-347194453

fixed by the WIP pr https://github.com/dmacvicar/terraform-provider-libvirt/pull/380


[Javascript][Actions] [Execute ShowCardActions programmatically]

Platform

JavaScript

Version of SDK
npm 2.3.0
Details
The execute function does not work on a ShowCardAction. It does work on a SubmitAction. I have not checked the other action types.
Example
card.getActionAt(0).execute()
When the action at index 0 is a SubmitAction, the action is triggered. If it is a ShowCardAction it is not.
I need this to reset my card state after a rerender. Because of the way our application works, I may need to rerender the card on a internal store update, at which point I want to reset the state, including previously expanded subcards. I don't see another way to expand subcards programmatically.

@dclaux could you take an initial first pass? thanks!


Update snapshot tests

see individual commits for details
this makes cargo test -- --ignored (includes snapshot tests) pass again

this particular log statement is somewhat problematic (but not the end of the world):
   19       │-(HOST) TRACE reading canary took 0.012s (83.93 KiB/s)
         19 │+(HOST) TRACE reading canary took 0.012s (81.14 KiB/s)

it prints the speed so it will make the snapshot test always fail (false positive). the snapshot test checks the output of probe-run when the  --verbose flag is passed

CI failure is unrelated to this PR and should be fixed in PR #260

bors r+


locally build docker image

Build docker image from scratch
Short term solution
Very big image, alternate solution can be deciphered over time

@xet7
Changed it to mongo:3.4 as requested.
I tried to do it with variable substitution as follows image: mongo:${MONGO_VERSION:-3.4} but it didn't work so hard coded it instead.
I'd like to add a few things more but the best palce for it would be a wiki.
If you are accepting this PR, it would be very useful for users. How can I go about that?

Thanks i was waiting for this to get started with wefork :+1:
I think the image size can be reduced a lot by putting everything in one RUN statement (otherwise one does not benefit from the cleanup, since the first layers with all the build dependencies installed are still there).

@martingabelmann
Thanks for the tip, I didn't actually know that.
To be honest, I think there is merit in running a single RUN command but even then I'd imagine the image size will be big.
I have an alternative idea for the build process and to massively reduce the image size. Just not sure when I will have time to work on it.
For now, I'd prefer splitting into multiple RUN command purely to save readability (for now at least).

@martingabelmann
Thanks for the tip, I didn't actually know that.
I think there is merit in running a single RUN command but even then I'd imagine the image size will be big.
I have an alternative idea for the build process and to massively reduce the image size. Just not sure when I will have time to work on it.
For now, I'd prefer splitting into multiple RUN command purely to save readability (for now at least).

@stephenmoloney
I just did the changes (everything in on RUN) for comparison:
It is a delta of ~700MB which is about 65% to the current image size (1.1133GB). Furthermore: when running the suggested apt-get autoremove the imagesize gets decreased at further 47% down to absolute image size of 223MB which is nice.
Im not sure wether the autoremove is OK or if there are packages that are actually needed to run the app. The list is:
The following packages were automatically installed and are no longer required:
  adduser binutils ca-certificates cpp cpp-4.7 fakeroot file g++ g++-4.7 gcc
  gcc-4.7 git-man krb5-locales less libalgorithm-diff-perl
  libalgorithm-diff-xs-perl libalgorithm-merge-perl libbsd0 libc-dev-bin
  libc6-dev libclass-isa-perl libcurl3 libcurl3-gnutls libdpkg-perl libedit2
  liberror-perl libexpat1 libfile-fcntllock-perl libgdbm3 libgmp10 libgomp1
  libgssapi-krb5-2 libidn11 libitm1 libk5crypto3 libkeyutils1 libkrb5-3
  libkrb5support0 libmagic1 libmpc2 libmpfr4 libncursesw5 libpopt0
  libquadmath0 librtmp0 libsqlite3-0 libssh2-1 libstdc++6-4.7-dev
  libswitch-perl libtimedate-perl libx11-6 libx11-data libxau6 libxcb1
  libxdmcp6 libxext6 libxmuu1 linux-libc-dev make manpages manpages-dev
  mime-support openssh-blacklist openssh-blacklist-extra openssh-client
  openssl patch perl perl-modules python-minimal python2.7 python2.7-minimal
  rsync xauth

Maybe one can prevent from installing them in the first place by adding the --no-recommends flag to the apt-get install or using an alpine base image (typically they handle dependencies optimized for docker).
BTW it should be possible to have one RUN block formatted in a humand readable way by escaping additional linebreaks...

@martingabelmann
Making those changes makes some sense. Can you make a separate PR for those?
About alpine, as far as i know, you will run into issues trying to build meteor with alpine. I have an idea here on potentially using alpine but only after removing some intermediate containers for the build process... This would reduce the final image enormously but I haven't time yet to develop this idea.
Thanks. 👍


Support of custom Params or dynamic arrays

I am currently stuck on dynamically generating Params for some custom types. This type has so many fields that the default implementations of Params do not contain a tuple large enough, and I have trouble making something that work.
I have a trait that has the following functions and types:
type Params: Params;
fn params(&self) -> Self::Params;

The only way to make it work is to use a tuple type for Self::Params, because none of the array types can satisfy the lifetime requirements (so &[&dyn ToSql]does not work).Boxor other managed memory types do not implementParamseither (so noVec` or boxed array elements), and I cannot implement this trait for the type itself.
Is there a workaround?

You should be able to use rusqlite::params_from_iter. See the documentation and example here: https://docs.rs/rusqlite/latest/rusqlite/struct.ParamsFromIter.html.

I don't think this is what I need. I know the number of params statically, but they have different types.
For instance, the params could be (String, u64, Option<String>) (of course, the real struct has a lot more).
The problem is that I can't make an iterator with different types, and boxed dyn types don't work with Params.

In fact, since there are only so many variable types to bind, can't rusqlite expose some sort of BindCommand enum for dynamic parameter binding?

boxed dyn types don't work with Params

This isn't true. We implement ToSql for Box<dyn ToSql> (the impl is https://docs.rs/rusqlite/latest/rusqlite/types/trait.ToSql.html#impl-ToSql-for-Box<T>).

can't rusqlite expose some sort of BindCommand enum for dynamic parameter binding?

Yes. I've considered this. But it's not needed for your case.

For example https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=24868eca6bf3f85b322af0604722b01f. This is just an example, and I'm not saying it's how you should structure things. But it does scale to arbitrary number of fields in your type.

Interesting, I must have missed something about Box. I will give it a try.

It is a lot of boilerplate, but I do get the types to check.

Well... I run into a problem where I get an error from the SQL statement (out of range integral type conversion attempted in this case), and I would wish the Debug trait is implemented for Params. I think it is possible.

and I would wish the Debug trait is implemented for Params. I think it is possible.

Params is a trait, so I'm not sure how this would work.

Since every "element" implements ToSql, it should be possible to convert each to int, string, etc. Those all have Debug.

We still couldn't give a blanket impl of Debug for these types.

I am currently stuck on dynamically generating Params for some custom types. This type has so many fields that the default implementations of Params do not contain a tuple large enough, and I have trouble making something that work.

https://docs.rs/rusqlite/latest/rusqlite/trait.Params.html#positional-parameters

Using the rusqlite::params! macro, e.g. thing.query(rusqlite::params![1, "foo", bar]). This is mostly useful for heterogeneous lists where the number of parameters greater than 16, or homogenous lists of parameters where the number of parameters exceeds 32.

Another alternative:
https://docs.rs/rusqlite/latest/rusqlite/struct.Statement.html#method.raw_bind_parameter

docs.rs/rusqlite/latest/rusqlite/struct.Statement.html#method.raw_bind_parameter

Oh I forgot we added this lol.

I have tried params! before. It creates a slice which cannot be returned due to lifetime issues.
As for raw_bind_parameter, this will not fit my case, because it is not the structs themselves that handle the statement/binding. Now, I can of course invert the control (and do something like Trait::bind(stmt)), and in that case I will just use param![], but I am not sure if that is a good idea.
It would certainly be more convenient if I can just implement Params for a type.

It would certainly be more convenient if I can just implement Params for a type.

It's not out of the question, but it does need some design work. I'll think about it.

What I do right now is to "invert" the traits. Instead of returning a Params trait object and bind outside, I pass in the statement to a trait method for binding.
Before:
fn params(&self) -> Self::Params;

After:
fn bind(&self, stmt: &mut Statement);

Then I call raw_bind_parameter inside the method.


Please check if body has already been bound to ctx.request before parsing the raw body.

Just like the code in koa-bodyparser https://github.com/koajs/bodyparser/blob/master/index.js#L72
 return async function bodyParser(ctx, next) {
    if (ctx.request.body !== undefined) return await next();
    if (ctx.disableBodyParser) return await next();
}

Without checking it,  koa-body will make requests be pending there if the raw body has already been parsed by other middleware because the Promise cannot be resolved in https://github.com/dlau/koa-body/blob/master/index.js#L84

This could be potentially breaking behavior but I'd accept a PR adding this for the next major version.


Make the default symbol visibility hidden for unixen builds

This only applies when building shared libraries, but switches to a
symbol management strategy which is more in line with Windows, where
symbols must be explicitly exported (marked as default visibilty). This
allows us to be much more explicit and careful about what symbols are
being exposed, making our .so files tidier
Signed-off-by: Kimball Thurston<EMAIL_ADDRESS>

There are some failures on the Mac CI test. Not sure if it's related to this PR.

hrm, I am not sure what github has done in running the CI, it seems to have merged in master because it detected a conflict. Warning to be careful during merge...

@kdt3rd This is looking good. Seeing your solution withe "vague" linkage, reminds me of a pattern I used in some code at ILM where something similar came up ago in aeons past --- I used, equivalently to IEX_EXPORT_VAGUELINKAGE, IEX_EXPORT_CLASS, to capture that it was an export macro, and where it was intended to be used. I wonder if using CLASS might help down the line in years to come, if we are thinking about where VAGUELINKAGE might come into play, and if it's safe to use it in other contexts. EXPORT_CLASS would preemptively answer that hypothetical question.

@meshula - so you'll notice the CI is failing under Mac. It is unfortunately at runtime, and basically, the types of the "known" attribute types are being hidden inside the dylibs, and the dynamic RTTI comparison is failing when attributes are being set into the exr header because they are created in a separate module, and so result in a separate type. Where g++ does something different. This is the best explanation of what is happening I've been able to find:
https://stackoverflow.com/questions/19496643/using-clang-fvisibility-hidden-and-typeinfo-and-type-erasure
So I think there is going to have to be a multi-stage response to this in order to get to the full solution. The first I'll put in will be to use something similar to the dynamic cast work around suggested in the above. This can be encapsulated in the (existing) cast function of TypedAttribute. This ends up comparing the names after a few other checks (which is apparently what libstdc++ does, which I agree w/ the llvm/libc++ guys, is a bit dodgy, but hey, represents some definition of truth). Then, once this change is propagated to Imath as well, where we can tag the template classes with an export properly, then we can expose the other types inside OpenEXR that are put into TypedAttribute, but passed in from external (i.e. TypedAttributeImath::vec2i and you have to even expose the enums such as enum EnvMap). Then it will all work under libc++ (it's not really an issue w/ clang, clang under linux works just fine without libc++) - I've been able to make incremental changes, and move the problem. Which is making me re-examine what's really wrong.
I do agree that EXPORT_VAGUELINKAGE is a bit ... vague? but it gives an obvious search term to start the journey of discovery. However, I agree that something like an EXPORT_TYPE might be better (or EXPORT_CLASS, but given I'll need to add this eventually to the enums, thought TYPE was clearer). So I think I'll switch it to TYPE?


Fix/map2model fault fault relationships

Fixes bug where the fault topology was not exported

@lachlangrose, do you mind if I add this to v3.2?

@lachlangrose, do you mind if I add this to v3.2?

I think its already in master/3,2 now but I changed the base anyway


pmd: 6.5.0 -> 6.7.0

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from pmd.
meta.description for pmd is: '"Scans Java source code and looks for potential problems"'.

Checks done (click to expand)

built on NixOS
Warning: no invocation of /nix/store/6aslmn49p6mjbfs8k537zryljh31y74h-pmd-6.7.0/bin/bgastviewer.bat had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/6aslmn49p6mjbfs8k537zryljh31y74h-pmd-6.7.0/bin/cpdgui.bat had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/6aslmn49p6mjbfs8k537zryljh31y74h-pmd-6.7.0/bin/designer.bat had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/6aslmn49p6mjbfs8k537zryljh31y74h-pmd-6.7.0/bin/pmd.bat had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/6aslmn49p6mjbfs8k537zryljh31y74h-pmd-6.7.0/bin/cpd.bat had a zero exit code or showed the expected version
Warning: no invocation of /nix/store/6aslmn49p6mjbfs8k537zryljh31y74h-pmd-6.7.0/bin/run.sh had a zero exit code or showed the expected version
0 of 6 passed binary check by having a zero exit code.
0 of 6 passed binary check by having the new version present in output.
found 6.7.0 with grep in /nix/store/6aslmn49p6mjbfs8k537zryljh31y74h-pmd-6.7.0
directory tree listing: https://gist.github.com/fbcf881b259b0f62facf39ef7cdef2dc
du listing: https://gist.github.com/3cf46fdc8a1fec7d1ee1a2e5c9bea5a9

Instructions to test this update (click to expand)

One-time optional setup to skip building using Cachix:

Install cachix from https://cachix.org/
Use r-ryantm's cache:cachix use r-ryantm

Test this update by entering a nix shell, seeing what is inside the
result, and if applicable, running some binaries:
nix-shell --pure -I nixpkgs=https://github.com/r-ryantm/nixpkgs/archive/1900920d0c50337ed7c1c8aee2a7f631e69e3391.tar.gz -p pmd
ls -la /nix/store/6aslmn49p6mjbfs8k537zryljh31y74h-pmd-6.7.0

Success on x86_64-linux (full log)
Attempted: pmd
Partial log (click to expand)
no Makefile, doing nothing
installing
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/6aslmn49p6mjbfs8k537zryljh31y74h-pmd-6.7.0
strip is /nix/store/h0lbngpv6ln56hjj59i6l77vxq25flbz-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/6aslmn49p6mjbfs8k537zryljh31y74h-pmd-6.7.0/lib  /nix/store/6aslmn49p6mjbfs8k537zryljh31y74h-pmd-6.7.0/bin
patching script interpreter paths in /nix/store/6aslmn49p6mjbfs8k537zryljh31y74h-pmd-6.7.0
/nix/store/6aslmn49p6mjbfs8k537zryljh31y74h-pmd-6.7.0/bin/run.sh: interpreter directive changed from "/bin/bash" to "/nix/store/czx8vkrb9jdgjyz8qfksh10vrnqa723l-bash-4.4-p23/bin/bash"
checking for references to /build in /nix/store/6aslmn49p6mjbfs8k537zryljh31y74h-pmd-6.7.0...
/nix/store/6aslmn49p6mjbfs8k537zryljh31y74h-pmd-6.7.0

Success on aarch64-linux (full log)
Attempted: pmd
Partial log (click to expand)
no Makefile, doing nothing
installing
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/kzldszyw2jyax1d0j1kxq0syilavp4jr-pmd-6.7.0
strip is /nix/store/y4ymnvgxygpq05h03kyzbj572zmh6zla-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/kzldszyw2jyax1d0j1kxq0syilavp4jr-pmd-6.7.0/lib  /nix/store/kzldszyw2jyax1d0j1kxq0syilavp4jr-pmd-6.7.0/bin
patching script interpreter paths in /nix/store/kzldszyw2jyax1d0j1kxq0syilavp4jr-pmd-6.7.0
/nix/store/kzldszyw2jyax1d0j1kxq0syilavp4jr-pmd-6.7.0/bin/run.sh: interpreter directive changed from "/bin/bash" to "/nix/store/fqm2x6kiay1q4vg7pqp4wp17bdijlyc3-bash-4.4-p23/bin/bash"
checking for references to /build in /nix/store/kzldszyw2jyax1d0j1kxq0syilavp4jr-pmd-6.7.0...
/nix/store/kzldszyw2jyax1d0j1kxq0syilavp4jr-pmd-6.7.0

Success on x86_64-darwin (full log)
Attempted: pmd
Partial log (click to expand)
no configure script, doing nothing
building
no Makefile, doing nothing
installing
post-installation fixup
strip is /nix/store/df6k4mgdjxciy0f637lryp7c9ln7n1m3-cctools-binutils-darwin/bin/strip
stripping (with command strip and flags -S) in /nix/store/zkpqx55bsyvk8idwwfdlrsadn3ll8a4n-pmd-6.7.0/lib  /nix/store/zkpqx55bsyvk8idwwfdlrsadn3ll8a4n-pmd-6.7.0/bin
patching script interpreter paths in /nix/store/zkpqx55bsyvk8idwwfdlrsadn3ll8a4n-pmd-6.7.0
/nix/store/zkpqx55bsyvk8idwwfdlrsadn3ll8a4n-pmd-6.7.0/bin/run.sh: interpreter directive changed from "/bin/bash" to "/nix/store/cblfnvb5rmhd2z231mqasn0brzh1hhv4-bash-4.4-p23/bin/bash"
/nix/store/zkpqx55bsyvk8idwwfdlrsadn3ll8a4n-pmd-6.7.0


Add some 3.0 open source issues to Contribute to Rasa board

Are there any 3.0 issues that would be good for community members to pick up. If so, can you add them here?

added a few channel issues

I added a couple too


Developer Admin UI: provide simple action to execute sechub scan by sechub client

Situation
When user do deploy new sechub versions etc. (e.g. by a kuberntes deployment) or upgrading underlying security infrastucture they normally have disabled scheduling (e.g. in a autodeployment ).
After this has been deployed / changed they must check that scheduler is enabled and running again.
Also they have to check if all is working - means a sechub scan etc. must be done.
The scheduler check is normally done inside DAUI. But wanting to check if all is running - it becomes a little bit cumbersome: DAUI contains already all credentials, server location, port etc. But was not able to do a scan... So admins were forced to open a shell, configure credentials as ENV variables, type cli command with path for test project etc. etc.
Solution
We integrate a Client action "Start sechubclient scan" which uses a (configurable) sechub client path and a (also configurable) target folder location. Project ID will be an optional parameter (can be defined inside sechub.json as well).
Because DAUI resides in sechub-developertools project which has all dependencies, we are able to reuse WithSecHubClient from assert api of integration tests to have an easy way to execute sechub client calls

Albert Tregnaghi<EMAIL_ADDRESS>Daimler TSS GmbH, imprint

Curently SECHUB_WAITTIME_DEFAULT=60 seconds is not used inside execution but standand behavior from integration tests which do wait zero time at synchronous scans. So we penetrate all environments like integration-test
Provide possiblity to use SECHUB_WAITTIME_DEFAULT env variables inside DAUI calls, but keep origin behavior for integration tests


Fix issue where table doesn't render rows when relaxing filter with zero results

This issue only presents when you attempt to scroll to row 0 via scrollToRow when there's no rows. This could be seen as a misuse of the scrollToRow parameter, if so feel free to close.
Steps to reproduce

Populate a table with some content, but not enough for the scroll bar to appear.
Apply a filter which removes all rows, at the same time scroll to row 0.
Remove the filter again.

Expected
The results displayed during step 1 should be displayed again.
Actual
No results rendered.
Cause
It stems from an NaN target scroll position making its way into FixedDataTableScrollHelper.scrollTo, called from scrollToRow, when there are no rows to render. This NaN value is then stored in this._position which causes the table not to update when there are rows to render again (minus the scroll bar).
In scrollToRow the line: rowIndex = clamp(0, rowIndex, this._rowCount - 1); returns -1 when there's no rows (max ends up less than min in the clamp) , which triggers a subsequent lookup to return undefined. I did try keeping the index a 0 in this case but that led to other issues.
Fix
I've put a check in scrollToRow to ensure we only ever scroll to 0 when there's no rows, which seems to do the trick. Or simply don't set the scrollToRow parameter when there's no rows.

Apologies, I missed out the key fact that on each refresh of the table, as the user types their filter, I set scrollToRow={0}. I want to ensure they see the start of the table if they've previously scrolled.
I can fix this issue by not scrolling to row 0 if there's no rows, doh. That seems reasonable.  You may want to include this fix to safeguard this mistake. Feel free to close if not.

Thank you for reporting this issue and appreciate your patience. We've  notified the core team for an update on this issue. We're looking for a response within the next 30 days or the issue may be closed.

Thanks for your pull request. I apologize for leaving this project in limbo and not addressing your concerns. I have archived this project after doing a final release to make it compatible with React v16.


Monitoring Agent ？

Is the Monitoring Agent an Azure monitor Agent or a Log Analytics Agent?
A pre-existing VM extension is present:
When the Monitoring Agent is installed as an extension, the extension configuration allows reporting to only a single workspace. Defender for Cloud does not override existing connections to user workspaces. Defender for Cloud will store security data from the VM in the workspace already connected, provided that the "Security" or "SecurityCenterFree" solution has been installed on it. Defender for Cloud may upgrade the extension version to the latest version in this process.

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

ID: 069802b7-9db6-f5d6-b1aa-52ebc42e96f8
Version Independent ID: 7b011f8a-0a1c-5066-5d20-3cedcdfc7403
Content: Auto-deploy agents for Microsoft Defender for Cloud
Content Source: articles/defender-for-cloud/enable-data-collection.md
Service: defender-for-cloud
GitHub Login: @ElazarK
Microsoft Alias: elkrieger

@shmatsuy
Thank you for your feedback . We will investigate and update the thread.

@shmatsuy Currently the monitoring agent through the VM extension is log analytics agent as the capability for defender for cloud is in private preview for Azure Monitoring agent . Many capabilities for the Azure Monitoring agent are still in preview and it may take some time before it reaches parity with all capabilities of Log analytics agent . you can check the details in the article for Azure Monitoring Agent  which talks about the current supportability and limitation . The Azure monitoring agent can coexist with the legacy log analytics agent .


consolidate HWE repos and build workflows

We have a number of HWE (hardware enablement) repos in this org:

https://github.com/ublue-os/asus
https://github.com/ublue-os/asus-nvidia
https://github.com/ublue-os/framework
https://github.com/ublue-os/nvidia (this repo)
https://github.com/ublue-os/surface
https://github.com/ublue-os/surface-nvidia

I'd like the consolidate all these repos into one as it will greatly simplify our maintenance. Currently, I know for sure, some of these repos are missing features and fixes found in main and nvidia because it's a lot of headache to fixup all the different repos.
I created a discord thread which has some discussion about this too.
https://discord.com/channels/1072614816579063828/1220077695279435777

First, implement https://github.com/ublue-os/main/issues/526 for nvidia repo.


Add "undo" for section removal

Alternatively, ask for confirmation before removal

I was thinking about this, and came up a solution that doesn't require backup to proto: simply hide the elements in the form instead of actually removing them, and make sure that the unload functions ignore hidden elements. Then "undo" becomes toggling visibility, and the undo cache resets on page reload (since the hidden elements are not saved in the written protos).

I've been thinking about this more in light of the complexity that Anton highlighted last week. I'd be ok with implementing a version that doesn't use a stack---only a single undo is permitted---or just dropping this and keeping our alert that requests confirmation.
WDYT?

An alert to require confirmation on a "delete" or "remove" action seems sufficient to me

A one-level undo sounds good because it's simple. I would put the undo button in the place where the delete button had been, and clean that up when the next delete occurs.
I'm not sure I like a modal dialog every time something is deleted, because I imagine it may be a frequent operation.

Closed by #61


WFLY-9793 Upgrade Infinispan to 9.2.0.Final

https://issues.jboss.org/browse/WFLY-9793
Adds new dependency on io.reactivex.rxjava2:rxjava.
Also includes refactoring of hibernate 2nd level cache modules

retest this please

retest this please

Closing for investigation.


Right align and number format

The numbers are not aligned. This patch formats numbers and aligns them.

Thanks for your PR. Could you check the Failing Tests and fix them.
StyleCI also nags about the double quotes.
Happy to merge this if these tests pass.

Using number_format() on methods, classes, lines and LoC does not make sense. These numbers will always be an integer value.
Also, using round with number_format is redundant.

number_format also has a thousands separator (eg. 1,000), but I think we should just leave it like it his.
Numbers and their formatting is always a delicate issue (In Switzerland for example we would format thousands like so 1'000) and as this output is only viewed by developers I think it doesn't matter.
The right-alignment of the numbers however could make it to master.

I've added right alignment of the stats numbers in 3553409e193e19930d1acef43ccf6ce6c2f4fb43.
Thanks for your contribution!


Escaped quote inside string breaks highlighting

This thing breaks highlighting on atom-language-julia 0.2.0:
 f("\"")
 f("\"")

Thanks for noting. I'll fix it up.


Removed configuration and updated the backend Java version to 17

Purpose
The backend JAVA version has been updated from 21 to 17. The Azure web app Maven plugin only supports versions 8, 11, and 17 JDK.
Refer: https://github.com/microsoft/azure-maven-plugins/wiki/Azure-Web-App:-Configuration-Details
Does this introduce a breaking change?

[ ] Yes
[x] No

Pull Request Type
What kind of change does this Pull Request introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[x] Other: Removed configuration and updated the backend Java version to 17

@microsoft-github-policy-service agree company="Terawe"


No documentation on rule fields

While several fields in the Rule struct are fairly self-explanatory, they're not explicitly documented. In particular, I'm confused as to the difference between ExpireBase and Sentence. In most of the tests, they seem to be set to the same value.

ExpireBase is separate TTL value used to keep state and reset state. I'll work on the docs during the next commit.


[Feature Request]Mod support for Create sequenced assembly and Hephaestus

Mods provide their own support, and when it comes to Create, it already has full support including sequenced assembly


Added new params to Add-RecipientPermission

Per Issue #1027.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/mailboxes/Add-RecipientPermission.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Questions about groundtruth in the training process

Hello, thanks for your great work!
I want to know how the groundtruth labels are generated? In the paper, they are generated with pose matrices and depth images, but I didn't find it in the project codes.
Thanks for your open-source code,
Liang

https://github.com/zju3dv/LoFTR/search?q=gt
src/loftr/utils/supervision.py
Some issues are also related to this topic.

您好，感谢您的出色工作！我想知道地面事实标签是如何生成的？在论文中，它们是用姿势矩阵和深度图像生成的，但我在项目代码中没有找到它。感谢您的开源代码，梁

Hello, do you know how ground truth labels are generated? I'm still not entirely clear on how they are produced. If you can help clarify this for me, I would greatly appreciate it.


Psalm plugin failed to load

Hello,
When trying to use the Psalm plugin as stated in the documentation, I get the following error:
Uncaught UnexpectedValueException: CuyZ\Valinor\QA\Psalm\ValinorPsalmPlugin is not a known class in /var/www/valinor-sample/vendor/vimeo/psalm/src/Psalm/Config.php:1637
Stack trace:
#0 /var/www/valinor-sample/vendor/vimeo/psalm/src/Psalm/Config.php(1518): Psalm\Config->loadPlugin()
#1 /var/www/valinor-sample/vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/ProjectAnalyzer.php(244): Psalm\Config->processPluginFileExtensions()
#2 /var/www/valinor-sample/vendor/vimeo/psalm/src/Psalm/Internal/Cli/Psalm.php(335): Psalm\Internal\Analyzer\ProjectAnalyzer->__construct()
#3 /var/www/valinor-sample/vendor/vimeo/psalm/psalm(9): Psalm\Internal\Cli\Psalm::run()
#4 /var/www/valinor-sample/vendor/bin/psalm(120): include('...')
#5 {main}

Next Psalm\Exception\ConfigException: Failed to load plugin CuyZ\Valinor\QA\Psalm\ValinorPsalmPlugin in /var/www/valinor-sample/vendor/vimeo/psalm/src/Psalm/Config.php:1647
Stack trace:
#0 /var/www/valinor-sample/vendor/vimeo/psalm/src/Psalm/Config.php(1518): Psalm\Config->loadPlugin()
#1 /var/www/valinor-sample/vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/ProjectAnalyzer.php(244): Psalm\Config->processPluginFileExtensions()
#2 /var/www/valinor-sample/vendor/vimeo/psalm/src/Psalm/Internal/Cli/Psalm.php(335): Psalm\Internal\Analyzer\ProjectAnalyzer->__construct()
#3 /var/www/valinor-sample/vendor/vimeo/psalm/psalm(9): Psalm\Internal\Cli\Psalm::run()
#4 /var/www/valinor-sample/vendor/bin/psalm(120): include('...')
#5 {main}
(Psalm 5.11.0@c9b192ab8400fdaf04b2b13d110575adc879aa90 crashed due to an uncaught Throwable)

That happens even in an empty project, with no source code. You can check it out in this repository: https://github.com/rubenrubiob/valinor-sample   by doing:
composer install
vendor/bin/psalm

I am using Psalm and Valinor's latest versions
Am I missing something? I did not find any related issue in this repository nor in Psalm's.
Thank you!

Not a real solution but I found that adding this to my composer.json resolved the issue.
    "autoload-dev": {
        "psr-4": {
            "CuyZ\\Valinor\\QA\\": "vendor\\cuyz\\valinor\\qa"
        }
    },

Hey there, thanks for the report.
A way to (temporarily?) fix this issue is to add the following to your project's composer.json:
"autoload-dev": {
    "files": [
        "vendor/cuyz/valinor/qa/Psalm/ValinorPsalmPlugin.php"
    ]
}

In the meantime, I've submitted https://github.com/vimeo/psalm/issues/9847 to try to find a better way to do this.

Thanks to both of you! In the meantime, I can get by using that concrete autoload.


fix: Avoid exception when handling lastModified of directories in StreamStatCommand.

Came across errors when using file_exists() aka "StreamStatCommand" on directories.
Then call $lastModified = $current->filesystem->lastModified($current->file); throws UnableToRetrieveMetadata exceptions but contrary to the visibility there was no handling of this case.
I'm not entirely sure if a a thrown exception is desirable in some cases, but for now I went for no exception, but false as default value with the option to "emulate" a timestamp based on the container files of a folder. For that the new flag FlysystemStreamWrapper::EMULATE_DIRECTORY_LAST_MODIFIED was introduced.

✅ README.md has been updated
⚠ Tests haven't been added yet.

Thank you for your input! While I believe the issue lies with the adapter, I see the wider problem. Using file timestamps when the directory fails is indeed a smart solution.
However, it appears that when the workaround isn't activated, the code consistently returns false for directories, correct?

However, it appears that when the workaround isn't activated, the code consistently returns false for directories, correct?

Yeah this is correct. I was torn about 0 or false - because according to filemtime is a failure - which it might is?

While I believe the issue lies with the adapter

I wasn't sure either where to fix this ideally - I'm using AwsS3V3Adapter which does this:
    public function lastModified(string $path): FileAttributes
    {
        $attributes = $this->fetchFileMetadata($path, FileAttributes::ATTRIBUTE_LAST_MODIFIED);

        if ($attributes->lastModified() === null) {
            throw UnableToRetrieveMetadata::lastModified($path);
        }

        return $attributes;
    }

So because S3 "doesn't have folders" there will never be a lastModified and hence always an error.
Maybe a divide and conquer approach would be better - add an addition try{}catch around fetching the lastModified in this library and propose a fix for directory lastModified handling (no exception & optional workaround) for the AwsS3V3Adapter.
In the end the minimal "solution" here would be just to ensure an exception thrown by $lastModified = $current->filesystem->lastModified($current->file); won't kill the whole getRemoteStats() handling.

@das-peter,
your changes broke the original behavior and didn't pass the unit tests. Please review the latest commit to see if it resolves your initial issues.

no answer ... seems it was not really important ...


Emoji Support

Hi all,
is it planned to support inserting emojis into the text field for future releases? Currently no emojis could get added to the text.
Best regards,
Oliver

Hi @ostumm y,
we will consider it as a backlog and will add it in the future releases.

Hi @ostumm ,
We are closing the issue request as we don't provide support for direct customization.
However, we have noted down your suggestion for Emoji Support and will be adding it to our backlog.
Also, please do reach out to us if you face any issues with the functionality or deployment of the Company Communicator.


Fix t-shape detection

Description
Fix the issue where T-shaped detection is sometimes incorrect.
Addressed issues
Fixes #6

I think it needs some additional checks to prevent the L-shape from being incorrectly detected

@univeous Awesome, is it finished or are you going to keep making more changes?
When you say this:
I think it needs some additional checks to prevent the L-shape from being incorrectly detected
Do you mean that a Lshape could be detected in the Tshape function?

Initially (1589296), Lshape might be incorrectly detected as Tshape;
I fixed this in e223977. So I think this PR is finished :)


Change text displayed for blocked channels

PR Checklist

Please check all that apply to this PR using "x":

[x ] I have checked that this PR is not a duplicate of an existing PR (open, closed or merged)
[x] I have checked that this PR does not introduce a breaking change
[ ] This PR introduces breaking changes and I have provided a detailed explanation below

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting)
[] Refactoring (no functional changes)
[ ] Documentation changes
[x] Other - Please describe:

Fixes
Fix the text displayed in other languages
Issue Number:
What is the current behavior?
With the current english string there is a problem with the translation in other languages. For example in other languages current english text would be: "You have blocked channels 10" instead of "You have 10 channels blocked." Also, what happen when there si no blocked channel? So, I think the simpler form is better in this situation.
What is the new behavior?
Instead of "You have x blocked channles. Manage" will be displayed "Blocked channels: x Manage"
Other information

Thanks for the PR @TigerxWood!
You are right this string isn't formatted very well, but we can just change it to this
  __('You have %count% unblocked %channel%.', {
    count: userBlockedChannelsCount,
    channel: userBlockedChannelsCount === 1 ? __('channel') : __('channels'),
  });

Then the string for non-english languages can be changed more.

Pay atention it's blocked not unblocked. And still the problem it's the same. It's about the word blocked before channel or channels. In other languages would be correct: You have x channel(s) blocked, so I think my sugestion is the only way to not make problems.

Thanks for the suggestion and PR @TigerxWood ! Once we get this merged, can we show you some appreciaiton?

@TigerxWood Sorry, I meant 'blocked'. I updated the string in this branch. Now other languages can choose if they want the word "blocked" before "channels".


Error:  Error: Error from socket: connect ECONNREFUSED <IP_ADDRESS>:6668

Hi,
I'm trying to run this app locally for my 2023 Homey Pro, so I can fix some issues with my bulb.
But after starting the app with homey app run, adding a bulb, and then trying to turn it on/off, I get:
2023-08-05T11:27:19.501Z [log] [Tuyadriver] Tuyadriver is running...
Device name:  Filament LED: Pære 1/6 has been inited

Error:  Error: Error from socket: connect ECONNREFUSED <IP_ADDRESS>:6668
    at Socket.<anonymous> (/app/node_modules/tuyapi/index.js:627:26)
    at Socket.emit (node:events:513:28)
    at emitErrorNT (node:internal/streams/destroy:157:8)
    at emitErrorCloseNT (node:internal/streams/destroy:122:3)
    at processTicksAndRejections (node:internal/process/task_queues:83:21)

I've tried setting an explicit IP for the bulb in the configuration, but it still tries to connect to <IP_ADDRESS>. Any idea what's going on?
I'm running the app on a Mac, via Colima instead of Docker, but the image should still be able to connect to IPs in my local network.

Setting an explicit IP only seems to take effect after restarting the app.
It now can connect to the bulb and can investigate the data errors.
Not sure why it wasn't able to auto-detect the IP?

Tried running with docker app run -r to run it on the Homey instead of locally with Docker, in case the issue was that the Docker setup was preventing the app from enumerating the IPs of devices via UDP multicast or similar.
But still getting:
Error:  Error: Error from socket: connect ECONNREFUSED ::1:6668
    at Socket.<anonymous> (/app/node_modules/tuyapi/index.js:627:26)
    at Socket.emit (node:events:513:28)
    at emitErrorNT (node:internal/streams/destroy:151:8)
    at emitErrorCloseNT (node:internal/streams/destroy:116:3)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)

The fundamental issue has been fixed by https://github.com/athombv/node-homey/pull/353
Running the app locally with host networking allows UDP multicast. The same can be done by homey app run -r for running directly on the device, but of course that has a slower edit/run cycle.
There's still an issue where the app will try to connect to <IP_ADDRESS> or ::1 around five times before TuyaAPI starts the process of looking for the IP: TuyAPI Finding missing IP  or ID <ID>. Not sure why that is.

The initial delay on startup or when adding a device is fixed by https://github.com/torarnv/nl.rebtor.tuya/commit/d9b04d789d35164a6a016ad9854b8592c040e594

This should be fixed now by https://github.com/athombv/node-homey/pull/353 and https://github.com/torarnv/nl.rebtor.tuya/commit/d9b04d789d35164a6a016ad9854b8592c040e594


Text to speech doesn't seem to function at all

I'm on LineageOS on a OnePlus 7 Pro, using RHVoice as my TTS provider. It seems like the TTS itself works just fine, as other apps can use it without issue. However, I'm unable to get Voice Notify to read off notifications in any capacity. I have every "device state" enabled for sake of testing. I tried the "Media", "Voice", and "Notification" audio streams, non of which worked (with the volume up of course). However, I noticed that the volume rockers would change depending on the stream. For example, I chose the "Voice" stream, and the volume rockers still changed media volume. Then after creating a test notification, the volume rocker started changing voice volume, but I still couldn't hear the TTS.
I noticed something similar using the notification stream. When I recieved a notification, my music would quiet down, but there would be no TTS. The music would stay quiet until I pickes up the phone and messed with the notification enough to reset the volume.

This app would be sooo useful if it worked :/ Having the same issue here. @pilot51 I would love to be able to use your app. Can I support you with any logs or something?

+1. I also have this issue. I also notice that every time I boot my phone, there is a toast telling me that "Voice Notify: failed to initialize text-to-speech" (I don't remember the exact words). Other applications that use TTS just work fine.

So far I've been unable to reproduce, but I'll focus on these TTS issues since all other known major issues have been resolved with v1.2.2.
If I can't reproduce, it would be great if someone experiencing any of these issues could join the Discord or Matrix server to help with debugging and testing fixes.

I think I fixed it... hopefully. Commit f471efb
I'm planning to release on Google Play tomorrow. If you don't want to wait (who knows how long approval will take), I added a release-signed build to the auto build release.
I'll close this and if we find out it's still a problem, I'll reopen it.


Randao message_hash is not a hash

The message_hash supplied to per-block-processing/randao is not actually a hash, it's just the little-endian encoding of get_current_epoch(state).
I suspect the intention is for it to be a hash.
See #859 for reference.

my understanding here is that given the relative cost of cryptographic signature operations, we usually want to push as little data as possible through a given signing algorithm. however usually we want to produce a commitment to data that is larger than a given digest size (e.g. 32 bytes). this tension is usually resolved by signing the hash of the input data.
and following this "usual" procedure, it makes sense to call this parameter to this function a message_hash.
i interpret this use in the spec to take some creative liberties wrt the input data being a hash or not. in this case we just pad the current epoch to 32 bytes and proceed normally. i would think we want to avoid introducing another hashing here, just to avoid the additional cost of computing the hash (when just the serialized integer will do).
if we agree that we can use the plain serialization in lieu of the hash then we could still argue that we change the name of this function parameter. i've seen this type of flexibility around the name employed in other cryptography software so don't think its worth changing imo. this same question came up in another issue on this repo (or possibly gitter) some months ago so that would actually be motivation for a change.

I suspect the intention is for it to be a hash.

The logic is correct but I agree the typing is awkward. To fix the type mismatch, it's probably more natural to define a RandaoReveal object as
{
    epoch: uint64,
    signature: bytes96,
}

and then assert bls_verify(proposer.pubkey, signing_root(reveal), reveal.signature, domain). See the discussion here.

signing_root(reveal) would still just be a little endian encoding of get_current_epoch(state).

The spec now has hash_tree_root(get_current_epoch(state)) which is the intended behaviour :)
I may introduce a RandaoReveal object later for cleanliness.


Job not running

Hey, I've followed the steps to install and configure the job scheduler, but it seems the jobs aren't running (nothing is printed in the logs, but also no error).
Is there some example app I could maybe compare mine with?
btw. as far as I could get, the examples are a bit wrong right? it should be
await AndroidJobScheduler.scheduleEvery(         const Duration(seconds: 10), 42, iRunPeriodically);
instead of:
await AndroidJobScheduler.scheduleEvery(         const Duration(seconds: 10), iRunPeriodically, 42);
I've pushed the example app I've been trying here: https://github.com/piotrpalek/test_flutter_job

Hi there, your App looks fine, and I just tested it on my Test Device; the Job gets run there. Can you share more information about your Environment? Do you happen to run on API Level < 21, where the Job Scheduler isn't available? Could you test it on a recent Android Emulator?
Thanks for the hint regarding the examples, you're exactly right, they are outdated.

Hmm this is weird, it ran for a bit, but now doesn't. My device is Samsung Galaxy S5 with Android 6.0.1 so the API version should be good.
It sometimes runs, but very rare and not consistently (I think sometimes when I close the app). I've also noticed this in the logs when it's running:
06-22 11:05:59.990 31058 31307 V AlarmManager: Expired Alarm result :8
06-22 11:06:26.620 31058 31307 V AlarmManager: Expired Alarm result :8
06-22 11:06:31.440 31058 32447 V AlarmManager:  remove PendingIntent] PendingIntent{a03ba5: PendingIntentRecord{40212a6 com.google.android.gms broadcastIntent}}```

Thanks for bringing this to my attention. This is likely a problem with the Service implementation. One thing to note here is that the Android OS normally doesn't allow you to schedule jobs at a more frequent interval than 15min. One possibility (read "hack") to work around this is to Schedule OneShot Jobs, and reschedule another OneShot Job at the end, which is how the service is implemented. I'll investigate how this is behaving on lower API levels, it probably is breaking at that stage.
Did you, by any chance, notice any exceptions thrown by the Jobscheduler (io.gjg.androidjobscheduler) service? Also, are you able to reproduce the problem with the example app provided in this repo? This would help us rule out any issues related to Logging, because the Job in the example app is performing a much more visible thing than just printing text (writing state to persistent storage)


Minor improvements to the JSoupParserBolt

Similar to the ParserBolt, add the ability to skip the emitting of the outlinks
Change error handling to be similar to what is done by the ParserBolt
Minor tweaks to be in par with the ParserBolt like the name of the metrics

this looks good.  since you're in there, can you add a comment to link.attr("abs:href") to the effect:
// abs:href tells jsoup to return fully qualified domains for relative urls. e.g.: /foo will resolve to http://shopstyle.com/foo

looks good to me.  and helpful to me to study.  if you're inclined to do any of my suggestions cool, otherwise let me know and i'll merge.

@acinader updated


Update langchain python tutorial

Remove unused GPT4all
Use nomic-embed-text as embedded model
Fix a deprecation warning (call)

Awesome! Thanks for the PR!

You are most welcome :thumbsup:


Add thousands separators to amounts in XDR viewer

Before:

After:

Since this is already intended to be human readable, I don't think it's a bad thing that it doesn't display trailing 0s, but it'd be relatively easy to force them to show.

Preview is available here:http://laboratory-78e6a23.previews.kube001.services.stellar-ops.com/

Preview is available here:http://laboratory-a098866.previews.kube001.services.stellar-ops.com/


Omniauth - Steam

I'm trying my darndest to use another omniauth provider. Steam.
https://github.com/reu/omniauth-steam
Following this documentation I'm getting a bit hungup on making it work. After I make all my changes, I get a "An error has occured" page.
Is anyone able to point me in the right direction?
Does helpy only support the 4 omniauth providers that are already in the settings.yml?

Hi @Valiantiam it should work with any omniauth provider, I have tested it with a few.  Not really sure what the issue might be though, I would start by looking in the logs in Helpy and see what you see.

Maybe you can help by clarifying where your middleware is that I would need to edit? Most other applications I've run into have an omniauth.rb where I've made a lot of my changes, but this project doesn't have one after install.

In Helpy, we use Devise for auth, which means you don't need to interact with the middleware directly.
First, try adding the gem then your id and secret to settings.yml.  If that does not work, you may need to look into Devise and how oauth is configured.  That is in config/initializers/devise.rb.  You can see where the default implementation was overwritting to load from settings.yml, and here you can add any unique considerations for Steam.


Add a system to eliminate the ifs in TriggerInput

I can think of 3 ways to do it, in order of decreasing preference:

function ENT:TriggerInputKick(value)
function ENT:TriggerInput_Kick(value)
callbacks

pseudo-code for base_wire_entity:
function ENT:TriggerInput(name, value)
	return self["TriggerInput"..name](self, value)
end

I like the base_wire_entity solution
All current code will still work, we have the option of using it for new code, and it's super easy to implement.

yeah let's discourage inputs with spaces :P

I don't like the idea of concatenating strings to form function names - it makes more sense to store a table where the keys are input names and the values are functions.
ENT.TriggerInput = {}
setmetatable(ENT.TriggerInput, { __call = function(triggers, self, name, ...) assert(triggers[name])(self, value) end }
function ENT.TriggerInput:Kick(value) --[[ ... ]] end

@AbigailBuccaneer but then we would have to check if TriggerInput is a function or a table, to keep backwards compatibility. That's no problem of course, but is that any better than concatenating strings?

Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
> ENT = {}
> ENT.TriggerInput = {}
> function ENT.TriggerInput:Kick(value) --[[ ... ]] end
> function ENT.TriggerInput["I am bad at naming inputs"](self, value) --[[ ... ]] end
stdin:1: '(' expected near '['

Should be function ENT"TriggerInputI am bad at naming inputs" end

@TomyLobo Whoops, minor syntactic slipup aside, it's still possible - I just updated my comment.
@Divran we wouldn't have to check if it's a function or a table - the __call metamethod means it can be called like a function even though it's a table. And if entities want to override ENT.TriggerInput with an actual function, then they could. Nothing would change in how ENT:TriggerInput(name, value) gets called anywhere.

we wouldn't have to check if it's a function or a table - the __call metamethod means it can be called like a function even though it's a table.

oh right yeah I read your post too fast and missed that

me too.
But is it worth the complexity?

I think it gives the cleanest API for defining input functions. To me at least, function ENT.TriggerInput:Kick(value) feels a lot nicer than function ENT:TriggerInputKick(value).

Using that syntax, "self" will be the TriggerInput table.

self is whatever you pass in as the self argument - if you were to call it directly using the same syntax it's declared with, then yes it would be - but the __call implementation above does the right thing. That's probably an argument that it's confusing - but it's not wrong.

Definitely confusing

unless your port names are excessive, don't argue with cost.

You're completely discounting the cost of a table lookup
You're concatenating 2 strings with less than 20 characters each. In C.

Yeah forgot the wonkey metatable stuff
ENT = {}
ENT.TriggerInputTest1 = function() end
ENT.TriggerInputTest2 = function() end
ENT.TriggerInputTest3 = function() end
ENT.TriggerInputTest4 = function() end
ENT.TriggerInput = setmetatable({}, {
  __call = function(triggers, self, name, ...)
    assert(triggers[name])(self, ...)
  end })
ENT.TriggerInput.Test1 = function() end
ENT.TriggerInput.Test2 = function() end
ENT.TriggerInput.Test3 = function() end
ENT.TriggerInput.Test4 = function() end

local iterations = 1000000
local key = "Test1"
local t = os.clock()
for I=1,iterations do
	ENT["TriggerInput"..key](ENT)
end
print(os.clock()-t)

t = os.clock()

for I=1,iterations do
	ENT:TriggerInput(key)
end

print(os.clock()-t)

outputs
0.129
0.179

I slightly prefer Abigail's approach, though we should go with the more performant. Unless we would ever want to iterate over all input functions, in which case Abigail's is way easier.
Out of curiosity, could you rerun the benchmark with Test3, and comparing against the existing approach, with a series of if(string comparison)?

ENT = {}
ENT.TriggerInputTest1 = function() end
ENT.TriggerInputTest2 = function() end
ENT.TriggerInputTest3 = function() end
ENT.TriggerInputTest4 = function() end
ENT.TriggerInput = setmetatable({}, {
  __call = function(triggers, self, name, ...)
    assert(triggers[name])(self, ...)
  end })
ENT.TriggerInput.Test1 = function() end
ENT.TriggerInput.Test2 = function() end
ENT.TriggerInput.Test3 = function() end
ENT.TriggerInput.Test4 = function() end

local iterations = 10000000
local key = "Test1"
local t = os.clock()
for I=1,iterations do
	ENT["TriggerInput"..key](ENT)
end
print(os.clock()-t)

t = os.clock()

for I=1,iterations do
	ENT:TriggerInput(key)
end

print(os.clock()-t)

t = os.clock()

for I=1,iterations do
	if "Test1"==key then
		ENT:TriggerInputTest1()
	elseif "Test2"==key then
		ENT:TriggerInputTest2()
	elseif "Test3"==key then
		ENT:TriggerInputTest3()
	elseif "Test4"==key then
		ENT:TriggerInputTest4()
	end
end

print(os.clock()-t)

t = os.clock()

for I=1,iterations do
	if "Test4"==key then
		ENT:TriggerInputTest1()
	elseif "Test3"==key then
		ENT:TriggerInputTest2()
	elseif "Test2"==key then
		ENT:TriggerInputTest3()
	elseif "Test1"==key then
		ENT:TriggerInputTest4()
	end
end

print(os.clock()-t)

1.276
1.793
0.588
0.789

yeah but we're not trying to get rid of the ifs because they're slow but because they're cumbersome

gmod doesn't have jit though does it? I thought garry disabled it because it caused problems

are you sure that isnt obsolete news?

idk

With JIT and 10x more iterations I get
5.753
0.026000000000001
0.026000000000001
0.026999999999999

@Divran @TomyLobo jit.status() == true on both client and server (for me, at least).
@thegrb93 This test is unrealistic because it checks the same key each time, which allows the JIT compiler to optimise for one particular codepath.
Also, if we're doing performance tests, how about tables without the metatables? It'd be nice to see how this compares to the other methods:
ENT.TriggerInput.Test1 = function() end
ENT.TriggerInput.Test2 = function() end
ENT.TriggerInput.Test3 = function() end
ENT.TriggerInput.Test4 = function() end
for i = 1, iterations do
  assert(ENT.TriggerInput[key])(ENT)
end

That said, I don't think there's a huge amount of value in performance testing these things - we should use whatever's clearest and most elegant unless it causes measurable performance problems in real-world situations.

ENT = {}
ENT.TriggerInputTest1 = function() end
ENT.TriggerInputTest2 = function() end
ENT.TriggerInputTest3 = function() end
ENT.TriggerInputTest4 = function() end
ENT.TriggerInput = setmetatable({}, {
  __call = function(triggers, self, name, ...)
    assert(triggers[name])(self, ...)
  end })
ENT.TriggerInput.Test1 = function() end
ENT.TriggerInput.Test2 = function() end
ENT.TriggerInput.Test3 = function() end
ENT.TriggerInput.Test4 = function() end

local iterations = 100000000
local keys = {"Test1","Test2","Test3","Test4"}
local t = os.clock()
for I=1,iterations do
	assert(ENT["TriggerInput"..keys[I%4+1]])(ENT)
end
print(os.clock()-t)

t = os.clock()

for I=1,iterations do
	ENT:TriggerInput(keys[I%4+1])
end

print(os.clock()-t)

t = os.clock()

for I=1,iterations do
	ENT.TriggerInput[keys[I%4+1]](ENT)
end

print(os.clock()-t)

t = os.clock()

for I=1,iterations do
	local key = keys[I%4+1]
	if "Test1"==key then
		ENT:TriggerInputTest1()
	elseif "Test2"==key then
		ENT:TriggerInputTest2()
	elseif "Test3"==key then
		ENT:TriggerInputTest3()
	elseif "Test4"==key then
		ENT:TriggerInputTest4()
	end
end

print(os.clock()-t)

t = os.clock()

for I=1,iterations do
	local key = keys[I%4+1]
	if "Test4"==key then
		ENT:TriggerInputTest1()
	elseif "Test3"==key then
		ENT:TriggerInputTest2()
	elseif "Test2"==key then
		ENT:TriggerInputTest3()
	elseif "Test1"==key then
		ENT:TriggerInputTest4()
	end
end

print(os.clock()-t)

7.917
1.502
1.143
0.589
0.574

Why don't you make the metatable like this?
ENT.TriggerInput = setmetatable({}, {
	__call = function(triggers, self, name, value)
		return triggers[name](self, value)
	end })

That assert looked useless and you weren't making use of tail call optimization

The assert gives a nicer error message when you call ENT:TriggerInput("this input doesn't exist"). (Especially when you actually write a nicer error message for it :wink:)
I was under the impression that if the last expression was a function call then it'd be tail call optimized, regardless of whether it was in a return or not. (Especially with LuaJIT.) It'd be interesting to know if that's the case though.

how would that work if the caller defines the return value, not the callee?

...You're right, it only works with return. Would be interesting to run these tests again.

About those asserts:
How about making that check in Create/AdjustWireInputs?


Update dartdoc to 0.30.2

This fixes some search box problems for Flutter in 0.30.1, and adds the --use-base-href flag as the Flutter post-processing of Dartdoc output requires it (without it, last push broke the docs).  cc @jdkoren
Release notes:  https://github.com/dart-lang/dartdoc/releases/tag/v0.30.2
Screenshots of Flutter docs with this PR:

Looks some of the links on the right side are still broken :(. Was there an issue filed for that?

@goderbauer https://github.com/dart-lang/dartdoc/issues/2099 covers the issue of dead links in Flutter, but NNBD has taken too much of my time to pursue it right now.

flutter-build seems to be "broken" a lot and so I haven't landed this change as when I check it is red.  Should I ignore this and land the change anyway?  @goderbauer / @gspencergoog

You can label this PR with "waiting for tree to be green" and it will auto-submit when the tree is green the next time.

(Added the label for you)


DOCS-12031: Move reusable content to _partials directory

Confirmed that this is not required so far for the latest 2.3 version. If this is required in future versions, we will create a new PR.


Can this be extended to the LSM6DSL IMU?

This is a very popular 6DOF IMU with no magnetometer, do you think you can extend this library to include this?

The library should work with any IMU. Just provide the update function with the measurements from the accelerometer and gyroscope.
If the output doesn't look right, try negating one of the inputs to the update function.


Serialization to a common format

It should be sharable across programming languages
YAML or related should work well

What algorithm should be behind? http://www.aclweb.org/anthology/J00-1002.pdf ?

What kind of serialization is intended? Entire Transducer and all related structures?

The transducer itself is tabular (rules-based), so no graphical structure is required to store it.  The dictionary automaton and some parameters (e.g. max edit distance) are all that need to be serialized.  Java provides a nice suite of serialization utilities, but only JVM-based languages can read its byte code.  There are some utilities to serialize Java-based structures to and from YAML, which are what I'm primarily considering.

Done.  I've gone with Google Protocol Buffers and a minimal set of attributes.

Please, refer a doc or commit at least to understand how to use it.

It's really simple:
Transducer transducer;
// ...
// Build transducer
// ...
ProtobufSerializer serializer = new ProtobufSerializer();
OutputStream os = new FileOutputStream("transducer.bin");
os.write(serializer.serialize(transducer);

Note that there's currently an issue with serializing transducer with deep dictionaries: https://github.com/universal-automata/liblevenshtein-java/issues/40

As @jbaiter described, it is really simple.  For another example, here's a unit test demonstrating how to (de)serialize dictionaries to and from byte arrays: DawgTest.java
The preferred serializer is ProtobufSerializer.
There are other options for serializing to/from streams.  You could do the following:
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

import com.github.dylon.liblevenshtein.collection.dawg.DawgNode;
import com.github.dylon.liblevenshtein.levenshtein.Transducer;
import com.github.dylon.liblevenshtein.serialization.ProtobufSerializer;
import com.github.dylon.liblevenshtein.serialization.Serializer;

// ...
final SortedDawg dictionary = buildDictionary();
final Transducer transducer = buildTransducer(dictionary);

final Serializer serializer = new ProtobufSerializer();

final Path serializedTransducerPath = Paths.get("/path/to/transducer.proto.bytes");
try (final OutputStream stream = Files.newOutputStream(serializedTransducerPath)) {
    serializer.serialize(transducer, serializedTransducerPath);
}

// If you'd prefer to serialize your dictionary:
final Path serializedDictionaryPath = Paths.get("/path/to/dictionary.proto.bytes");
try (final OutputStream stream = Files.newOutputStream(serializedDictionaryPath)) {
    serializer.serialize(dictionary, stream);
}

final Transducer deserializedTransducer;
try (final InputStream stream = Files.newInputStream(serializedTransducerPath)) {
    deserializedTransducer = serializer.deserialize(Transducer.class, stream);
}

// If you'd prefer to deserialize your dictionary
final SortedDawg deserializedDictionary;
try (final InputStream stream = Files.newInputStream(serializedDictionaryPath)) {
    deserializedDictionary = serialized.deserialize(SortedDawg.class, stream);
}
// ...

Please refer to the Javadoc for more info: Serializer

I'll add support for (de)serializing to/from Paths, directly, in the next release.

For really deep dictionaries, you may use the BytecodeSerializer.  I'm finishing a command-line interface that will let you play around with liblevenshtein and convert dictionaries from various formats to others.  It's almost done, I just need to finish some integration tests.

I still need to finish the integration tests, but I've manually tested it well.  Here's the command-line client (see its README): liblevenshtein-java-cli


Create Munger To Automatically Add Labels To Issues

Issues currently require manual labeling for routing.   Let's automate the process with some simple machine learning.

@lavalamp @apelisse


Can't set attributes to null/default value once set for repository resources

Describe the bug
For some repository resources, once I set a value to some of the attributes, I cannot update those attributes to the null/empty/default value.
Terraform Snippet
Using artifactory_local_npm_repository as an example, but seems pretty consistent with other repo resources (local/remote/virtual). While in this example I'm using description & excludes_pattern, it seems to be pretty consistent for all optional attributes regardless of type on repository resources.
provider "artifactory" {
  url          = "${var.artifactory_url}/artifactory"
  access_token = var.artifactory_access_token
}

terraform {
  required_version = ">= 1.0"
  required_providers {
    artifactory = {
      source  = "registry.terraform.io/jfrog/artifactory"
      version = "~> 6.0"
    }
  }
}

resource "artifactory_local_npm_repository" "main" {
  key              = "terraform-test"
  description      = "some description"
  excludes_pattern = "abcd/*"
}

The above snippet works as expected.
artifactory_local_npm_repository.main: Creation complete after 1s [id=terraform-test]

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

But the issue comes if I want to change some of the attributes on the resource. While I can update the values to another value, I cannot clear the values by omitting them, setting to an empty string, or null. Making the below changes ...
resource "artifactory_local_npm_repository" "main" {
  key              = "terraform-test"
-  description      = "some description"
+  description      = null
-  excludes_pattern = "abcd/*"
}

results in the following plan:
  # artifactory_local_npm_repository.main will be updated in-place
  ~ resource "artifactory_local_npm_repository" "main" {
      - description              = "some description" -> null
        id                       = "terraform-test"
        # (12 unchanged attributes hidden)
    }

It's not picking up the changes to excludes_pattern. This is consistent regardless if I omit the value, or set the value to null or "". It does work as expected if I set it to a non-null value, however. (e.g. excludes_pattern = "abce/*" accurately detects the changes). This is the same for both includes_pattern and excludes_pattern

Despite it accurately picking up the changes to description, it does not update the attribute, resulting in future plans attempting to make the same update. Again, like excludes_pattern, if the value is changed to a non-null value, the update works as expected. (e.g. description = "new description 1234" accurately updates the the description). This could be similar to Issue 329.

After that second apply, here's the end result of the repository: from getting the attributes on terraform-test back from the API (also shows the same via the UI)
{
    "key": "terraform-test",
    "packageType": "npm",
    "description": "some description",
    "notes": "",
    "includesPattern": "**/*",
    "excludesPattern": "abcd/*",
cont...
}

Terraform/provider version
Terraform v1.1.8
on darwin_amd64
+ provider registry.terraform.io/jfrog/artifactory v6.0.1

(Also used terraform 1.0.11).
Artifactory version
7.33.9
Expected behavior

Accurately detect changes to *_pattern attributes when setting to null
Accurately apply changes for other attributes when set to null values.

@takaze-kuzu Thank you for the report. We'll investigate.
From my experience with other attributes (noticeably proxy and public_key_ref/private_key_ref), Artifactory API will not affect any changes if the value is null or "" (empty string). The workaround we implemented is to give Artifactory API a non-existent value (e.g. random string) and this will reset the value to default.
I don't know if this is a strategy we can apply in general though.

Thanks @alexhung  - I guess that makes sense as I found some inconsistencies with which attributes it seems to affect. I used description just because it was an easy thing to test with, but ultimately I'm not too concerned there. The bigger issue will before attributes that affect behavior (e.g. patterns). I only tried it with a handful of attributes.
Probably another one that has the same affliction is username for the artifactory_remote_*_repository resources. Which would be awkward if you wanted to go from authenticating to a remote source to accessing it anonymously by clearing out the username/password fields.
If there's other details I can provide, would be happy to so do.

@takaze-kuzu Like other system-wide issue, if you have any particular attributes that are blocking your work, please open separate issue for them. This way we can take care of them individually without having to wait for everything to get fix together.

Nothing at the moment, so at the moment I'm OK to wait for a more complete fix. But if anything does come up - will certainly do that and update here. Thanks.

@takaze-kuzu My sense is that there won't be one single fix for this issue. Depending on the attributes and what they represent in Artifactory, some simply needs to be 'reset' with random string, whilst others would require destroying existing resource and recreate a new one.

Closing this issue as this pertain to general, system wide behavior. Please create new issue for specific bug.


Feature upload fallback

When the upload fails, use a fallback method that also works to upload the file.

Looks fine. Second member may merge.

Looks fine to me


zellij: 0.22.1 -> 0.23.0

Motivation for this change
Upgrade to 0.23.0 incorporating these changes.
Things done

Built on platform(s)

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

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

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

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

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

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 151471 run on x86_64-darwin 1

1 package built:

zellij

looks good, I don't think we need to delay merging.