Network performance in Ambient - OpenShift

Is this the right place to submit this?

[X] This is not a security vulnerability or a crashing bug
[X] This is not a question about how to use Istio

Bug Description
Hi,
I'd like to share some of my findings with respect of the networking performance (TCP) observed in an early stage testing I'm doing for ambient mesh running on top of OpenShift.
Before running this simple test I've deployed ambient mesh using the command described in the Version section.

  Make sure you aren't doing that (I first did it by accident :slightly_smiling_face: ; the official builds are all "release" builds though).
One other thing is for same node, performance is actually worse since the same traffic is all going through one process instead of 2. Unlike sidecars, where its always 2.
But overall in my testing I am seeing slightly better performance with ambient.
Given your result is not "Envoy is slightly faster" but rather "Ztunnel is neck and neck with Envoy but Ztunnel caps at 4.9Gb/s", that seems like we are hitting some unexpected limit somewhere

The sharp drop off at ~4.9Gb/s is suspicious.  Make sure you aren't doing that (I first did it by accident 🙂 ; the official builds are all "release" builds though).
One other thing is for same node, performance is actually worse since the same traffic is all going through one process instead of 2. Unlike sidecars, where its always 2.
But overall in my testing I am seeing slightly better performance with ambient.
Given your result is not "Envoy is slightly faster" but rather "Ztunnel is neck and neck with Envoy but Ztunnel caps at 4.9Gb/s", that seems like we are hitting some unexpected limit somewhere

Thanks for your response, I've repeated the same test after updating the ztunnel image to the latest stable one suggested, namely gcr.io/istio-release/ztunnel:1.21.1, but no luck so far (throughput still capped at ~4.9Gbps), the performance bottleneck seems to be something specific to OpenShift. I'll continue my investigations...

I actually would recommend using the latest nightly builds (1.22-alpha.xxx), just if you build it yourself it may be in debug mode. If you use the gcr.io/istio-testing ones they should be release mode

I actually would recommend using the latest nightly builds (1.22-alpha.xxx), just if you build it yourself it may be in debug mode. If you use the gcr.io/istio-testing ones they should be release mode

sorry, I don't follow you (I'm not very familiarized with all the istio ecosystem yet), the release I used for my latest test was from grc.io/istio-release, which I supposed it's in release mode and results were bad, how is possible that builds from istio-testing are in release mode as well?

Rust has "debug" and "release" profiles. Debug builds are super slow (and large) and not intended for real world
Istio builds we publish to docker are always "release" builds. gcr.io/istio-testing stores pre-release builds for each commit, and gcr.io/istio-release stores official releases; both of these are built the same way ("release" mode)
If you just build yourself from the repo (cargo build, etc) you will get a debug build.  Debug builds are super slow (and large) and not intended for real world
Istio builds we publish to docker are always "release" builds. gcr.io/istio-testing stores pre-release builds for each commit, and gcr.io/istio-release stores official releases; both of these are built the same way ("release" mode)
If you just build yourself from the repo (cargo build, etc) you will get a debug build. If you are not doing your own build (as it looks like you are not), then you should be fine.
tl;dr: "release" has 2 meanings

got it, thanks for the explanation. With that, then I can confirm that I'm hitting the performance issue using a ztunnel release build (tested with gcr.io/istio-testing/ztunnel:1.22-dev and gcr.io/istio-release/ztunnel:1.21.1)

@rsevilla87 did you ever get more info here? Note performance in 1.23 (currently master) should be about 40% higher for this type of workload


added language support: Bahasa Indonesia and Basa Jawa.

language code

bahasa indonesia: 'id-ID'
basa jawa: 'jv-ID'

closes #92

Thank you for your participation, please refer to the md-editor-extension，It is very simple

language code

bahasa indonesia: 'id-ID'
basa jawa: 'jv-ID'

closes #92

I have updated them for you here: https://github.com/imzbf/md-editor-extension/releases/tag/v1.1.0-cm


updateV1.9.0

Signed-off-by: liuguojun<EMAIL_ADDRESS>update lutos to v1.9.0

@back0893 , we're getting closer! Can you rebase to latest main to let the CI run?

i run git rebase in my local branch,then commit
is all right?

git rebase master should be fine, and then force push the branch.

force push?
i just commit and push

You'll need to git push --force for pushing after the rebase. Or just try git push and you should see an error mentioning that, give it a try

but i just git push,and successful

Oh, remember to checkout master, git pull and then rebase. As to update your master branch before rebase to apply the newest changes.

i think i do.
i pull origin master ,rebase origin master,and git pull -f

Thanks @back0893 !

Thanks @back0893 !
Thanks @jsign ,this is my first pull merge
Thank you for your patience


"Database Backup" Syntax to use when inserting data can add insert multiple rows in every INSERT statement？

When using the backup() function, passing in the "add_insert" parameter, the backup file will add the field name to each INSERT statement, like this:
INSERT INTO `fyhtcms_common_area` (`id`, `name`, `level`, `upid`) VALUES (1, 'Beijing', 1, 0);
INSERT INTO `fyhtcms_common_area` (`id`, `name`, `level`, `upid`) VALUES (2816, 'Miyun District', 2, 1);
INSERT INTO `fyhtcms_common_area` (`id`, `name`, `level`, `upid`) VALUES (6667, 'urban', 3, 2816);

When the amount of data is extremely large, unnecessary redundant data is generated; when the database backup file is imported, it also causes a great waste of resources;
Can you add an "insert_multiple_rows" option with backup(), after which the backup file becomes like this:
INSERT INTO `fyhtcms_common_area` (`id`, `name`, `level`, `upid`) VALUES
(1, 'Beijing', 1, 0),
(2816, 'Miyun District', 2, 1),
(6667, 'City District', 3, 2816);

In order to prevent the data from being too large and causing no response when inserting, it is best to insert a field every 2000 rows of data, like this:
INSERT INTO `fyhtcms_common_area` (`id`, `name`, `level`, `upid`) VALUES
(1, 'Beijing', 1, 0),
(2816, 'Miyun District', 2, 1),
(6667, 'City District, 3, 2816),
...[[[[about 2000 lines passed]]]]...
(49686, 'Qing Xian Farm', 4, 278);

INSERT INTO `fyhtcms_common_area` (`id`, `name`, `level`, `upid`) VALUES
(49687, 'Qingfeng Farm', 4, 278),
(49688, 'Farm', 4, 278),
(279, 'Mengcun County', 3, 264),
...[[[[output 2000 lines again]]]]...

final effect:
The same database, 97 tables, 43931 data records
Use default CI backup file size: 4.58mb (44125 queries) Import time: about 31 seconds
Optimized backup file size: 1.51mb (279 queries) Import time: about 2.8 seconds

There's no escape from this problem as it ultimately depends on your entire database size. Once you accumulate enough data, no amount of optimizations is going to make your backup imports fast enough to perform during a single web request.
That being said, optimizations won't hurt, but there's another problem ... I don't know how you came up with that 2000 number, but MySQL measures packet sizes and not counts. Even a single row can be too large.
Therefore, regardless of the batch size in counts, there will always be a case when it breaks something for somebody out there.


Possible memory leak ?

After a day or two or couple of hibernation/wake up cycles, windows explorer is taking upto half a gig of memory. Usually on my laptop explorer takes 50mb. Only way to fix this is to restart the explorer process and stopping the falconX process.
Config - win 10. 1909 (Build - 18363.720)

Hmm, this is not happening on any of the pc's i test FalconX on.

Pretty sure this is happening to me. Whenever I leave TaskbarX on Windows Explorer has a constans 0.5%-1% CPU usage and slowly accumulates memory.

This is after a couple of hours. If I leave it be it can approach 1.5GB after a couple of days without restarting Explorer.
I'm going to see if I can attach a debugger to it and see what happens, but I'm a newb at it and it might not help any.

So did some debugging and:
          HEAP_ENTRY Size Prev Flags            UserPtr UserSize - state
<PHONE_NUMBER>e6e1d0 0024 0000  [00]<PHONE_NUMBER>e6e1e0    00230 - (busy)
      UIAutomationCore!MsaaProxy::`vftable'

          HEAP_ENTRY Size Prev Flags            UserPtr UserSize - state
<PHONE_NUMBER>c93d50 0013 0000  [00]<PHONE_NUMBER>c93d60    00128 - (busy)
      UIAutomationCore!UiaNode::`vftable'

Those calls are leaking memory for me.
Don't know if it helps.

Well, now i moved away from UIAutomation does it still happen?
TaskbarX now uses MSAA.
https://github.com/ChrisAnd1998/TaskbarX/releases/tag/<IP_ADDRESS>

It is better. I've not really used my computer enough these past days to see if there would be any leaks after longer use, but the CPU usage is down. I'll keep an eye on it and let you know if anything happens.


DROP INDEX CONCURRENTLY must be first action in transaction

I get an exception with the following code and I can't find the actual problem.
The code is running against a docker postgres:latest container which should be a Postgres 10.2 DB.
public async Task<int> CountAsync(string userId, string modulePackageId, DateTime bookingDate, DateTime expiryDate)
{
            var result = await _session.Query<TransactionEvent>().Where(transaction => transaction.UserId.Equals(userId, StringComparison.Ordinal) &&
                                                                           transaction.PackageId.Equals(modulePackageId, StringComparison.Ordinal) &&
                                                                           transaction.Timestamp >= bookingDate &&
                                                                           transaction.Timestamp < expiryDate &&
                                                                           transaction.BillingExecuted).CountAsync();

            return result;
}

The exception that is thrown:
0A000: DROP INDEX CONCURRENTLY must be first action in transaction) ---> Marten.MartenCommandException: Marten Command Failure:
-- Marten.Storage.DocumentTable
drop index concurrently if exists public.mt_doc_transactionevent_idx_timestamp;

-- Marten.Storage.DocumentTable
drop index concurrently if exists public.mt_doc_transactionevent_idx_user_id;

-- Marten.Storage.DocumentTable
drop index concurrently if exists public.mt_doc_transactionevent_idx_package_id;

-- Marten.Storage.DocumentTable
drop index concurrently if exists public.mt_doc_transactionevent_idx_contingent_id;

0A000: DROP INDEX CONCURRENTLY must be first action in transaction ---> Npgsql.PostgresException: 0A000: DROP INDEX CONCURRENTLY must be first action in transaction
   at Npgsql.NpgsqlConnector.<DoReadMessage>d__148.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at System.Runtime.CompilerServices.ValueTaskAwaiter`1.GetResult()
   at Npgsql.NpgsqlConnector.<ReadMessage>d__147.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Npgsql.NpgsqlConnector.<ReadMessage>d__147.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at System.Runtime.CompilerServices.ValueTaskAwaiter`1.GetResult()
   at Npgsql.NpgsqlDataReader.<NextResult>d__32.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Npgsql.NpgsqlDataReader.NextResult()
   at Npgsql.NpgsqlCommand.<Execute>d__71.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at System.Runtime.CompilerServices.ValueTaskAwaiter`1.GetResult()
   at Npgsql.NpgsqlCommand.<ExecuteNonQuery>d__84.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Npgsql.NpgsqlCommand.ExecuteNonQuery()
   at Marten.Storage.Tenant.generateOrUpdateFeature(Type featureType, IFeatureSchema feature)
   --- End of inner exception stack trace ---
   at Marten.Storage.Tenant.generateOrUpdateFeature(Type featureType, IFeatureSchema feature)
   at Marten.Storage.Tenant.ensureStorageExists(IList`1 types, Type featureType)
   at Marten.Linq.MartenQueryable`1.executeAsync[TResult](Func`2 source, CancellationToken token)
   at Marten.Linq.MartenQueryable`1.CountAsync(CancellationToken token)
   at Marten.QueryableExtensions.CountAsync[TSource](IQueryable`1 source, CancellationToken token)

@NicoKno I don't have enough information here to troubleshoot it, so I'm pulling this out of 2.6.0. I'd guess that Marten is detecting that there's either an index in the DB that no longer exists according to the configuration, or is trying to drop it and recreate it on startup. You might need to help Marten out by tearing down that index by hand first. You might start by having Marten generate the full patch of what it thinks is the difference between the database and what Marten things it should be. That should at least point at what indexes have changed or gone away.

Added test to reproduce issue.  It also uses auto-create 'CreateOrUpdate' behavior, which I understand shouldn't do any object drop on the schema.

Fixed with https://github.com/JasperFx/marten/pull/1006

This issue still exists in version 3.3.0 with Postgres and long, dynamically generated index names.
When Marten generates an index name longer than the 63 characters permitted by Postgres, the TableDelta.compareIndices method always yields comparison conflicts. This happens because Postgres truncates the generated index name to 63 characters when the create index SQL statement is run. However, the compareIndices method's expected index name is not truncated.
I can look into fixing it, if you're good with that, @jeremydmiller?

@KrisJJC PRs with fixes are always more than welcome!

The original issue is fixed. I'm opening a new issue for what @KrisJJC reported as it's a separate problem.


Add a wiki page to collect user experience with segmatch

Add a list of reference to issues describing segmatch usage and results to give intuition on how to use the library

I would be very appreciated if you could upload an example of how to run segmap with online laser data. I have read through some issues but users didn't share their experience(their yaml file or launch file).

@wangyuwei2015 are you referring to using the SegMap descriptor? Otherwise the current demonstration instructions in the wiki should get you started.

could you write an instruction on how to configure the yaml ? if I have some other sensor, for example just one lidar or one lidar with one odometry . @rdube


Docstring feature for classes

Can I take this @V2dha ?

Can I take this @V2dha ?

Hello. Can u help me understand what exactly do u expect for this issue?

@TrushaT Currently the docstring feature is only for functions where it detects the function and add docstrings under them. So this feature is to work upon detecting the classes using ast module and adding docstrings for them.


failed to login an http registry with sealer, while https registry succeed

What happened:

What you expected to happen:
I want sealer can login a http registry, because a log of private registry is run in http mode rather than https.
How to reproduce it (as minimally and precisely as possible):

Anything else we need to know?:
Environment:

sealer version (use sealer version):
Cloud provider or hardware configuration:
OS (e.g: cat /etc/os-release):
Kernel (e.g. uname -a):
Install tools:
Others:

@VinceCui , we use https scheme as default, you can run sealer login by specifying the http scheme  like sealer login http://registry.cn-qingdao.aliyuncs.com

I prefix it with http header, but another issue occurs:
When i pull with http header, sealer reports:

But when i pull without http header, sealer reports:

the root cause is: set wrong domain if run sealer login with http scheme . i will fix this bug later @VinceCui .


Use instanceof pattern-matching where possible

Description
This PR enables the usage of instanceof pattern matching wherever possible (without changing semantics) reducing error-proneness and potentially enhancing readability.
Important notes

It is also woth mentioning that whenever used with inverted conditions (such as !(foo instanceof Bar bar) this must use prefix invertion notation (!expr) instead of comparisoj to false (expr == false).

There are multiple occurrences of the following pattern:

assert foo instanceof Bar;
Bar bar = (Bar) foo;

Formally, this cannot be rewritten as
assert foo instanceof Bar;
Bar bar = (Bar) foo;

because the assertion may be skipped if not enabled.
I have kept such cases untouched although I suggest
to update them to something like
if (!foo instanceof Bar bar) {
    throw new AssertionError();
}

which seems to have no performance penalty considering that typecheck is done anyway
when trying to cast foo to Bar so toggleable assertion seems to not be helping with anything
(please write in the comments, if this should be done).

I am fine with this, unless it makes backports harder. So basically I use this for new code in new 10.x features only, but I'd like to prevent this from happing in code that is possibly backported.

The precommit checks already answer most of your questions: Only use that feature for now if it is easy to apply. :-)

The precommit checks already answer most of your questions: Only use that feature for now if it is easy to apply. :-)

Fair point! As for now, I will run them locally (my bad here) and update the code accordingly

I've fixed the issues and applied ./gradlew tidy.
As for the backporting burden, I, unfortunately, lack the expertise in providing Lucene backports, so I guess that I'd better leave it up to you to decide which of these are okay to be applied and which ones are in "hot code" (although I possitively expect this specific lines to be rarely visited).
Considering that this changes also require Java version higher than 11, this seems to be a Lucene 10 change, so I guess there is plenty of room for discussion here whether specific files should be changed.

I already assigned the Lucene 10 milestone, not lucene 9.x

I tend to leave out the equals() methods. Many people in Lucene prefer to have a "step-by-step equals", as it is easier to read.
The general problem is that we add "modern" equals and hashCode methods that do not use instanceof but compare classes directly. The examples you changed are old-style instanceof versions, which are buggy in class hiererachies (unless it is a final class).
So I tend to change the equals methods with instanceof to follow the more modern approach consistently. This would be a separate PR. The problem of all those methods is that they were created by some IDE without human intervention (and all IDEs use different patterns, although modern ones use class comparisons instead of instanceof).

So I tend to change the equals methods with instanceof to follow the more modern approach consistently.

In this case, I may roll back changes to equals methods and create a separate PR replacing their equals implementations where it is backwards-compatible (i.e. on final classes).

In general it's great for Lucene devs to use the new language features we gain by setting a minimum Java version.  This is (part of?) why we have such minimums!
This nice instanceof pattern matching was introduced in Java 14, and since main (to be 10.0) requires Java 17 or 18, we can use nice new feature.
But we cannot backport to 9.x since it supports Java 11+, but I think that added burden (on backport) is OK.  We accumulate such burden as the source code diverges anyways...
Thanks for persisting here @JarvisCraft -- +1 to the plan to revert the equals method changes (and maybe do a follow-on PR to "standardize" those), and merge the rest of this PR.

@mikemccand, thanks for the comments!
I've undone the changes to equals() methods and applied the fix to the remaining fixable occurrences of the pattern.

can we keep explicit  == false checks instead of less readable !?

can we keep explicit == false checks instead of less readable !?

No, since javac only recognizes (!(EXPR instanceof TYPE NAME))

P.S.: When pushing more changes, please do not squash and force-push! This makes reviewing not working easy. We squash later when merging, it is not needed to do this while developing a PR.
When You add separate commits I can verify what you have changed, when its squashed I have to do all the work again.

Apologies for the late reply, I've lost the track of the message in the thread. I will soon coma back to it and see what should be changed.


[$1000] Secret key disappears in the Two-factor authentication (2FA) page when the window is resized.

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Visited the website.
Navigated to the Two-factor authentication page.
Resized the browser window.
Observed that the 2FA Secret key disappears.

Expected Result:
The 2FA key should remain visible even after resizing the window.
Actual Result:
The Secret key disappears in the 2FA page when the window is resized.
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

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

Version Number: 1.31-2
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/8d9f79fe-13a5-4fae-9ea1-1da06c98b260
https://github.com/Expensify/App/assets/43996225/25c922e7-b596-4594-87a8-125e311c43e8
Expensify/Expensify Issue URL:
Issue reported by: @Tushu17
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1686992771771289
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~014371df527f0b8811
Upwork Job ID:<PHONE_NUMBER>809156096
Last Price Increase: 2023-06-26

Proposal

Please re-state the problem that we are trying to solve in this issue.
Secret key disappears in the Two-factor authentication (2FA) page when the window is resized.
What is the root cause of that problem?
The main cause of this problem is that we are doing clean up of 2-Factor code which is not required as I will regenrated new each time they called.
when we resize screen this code will be called? which is not required as it does not require clean up
 useEffect(() => {
        return () => {
            TwoFactorAuthActions.clearTwoFactorAuthData();
        };
    }, []);

What changes do you think we should make in order to solve the problem?
Just remove clean up code it will automatically managed
 useEffect(() => {
        return () => {

        };
    }, []);

Before  Change
Screencast from 24-06-23 01:34:58 AM IST.webm
After Change
Screencast from 24-06-23 01:37:25 AM IST.webm

Contributor details Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~01cab64261c95a66c5

Is it open ?

Is it open ?

Reproduced and moved to External

You're right @dukenv0307 - let's close this out.

4

Your Expensify account @.***
Upwork Profile Link:https://www.upwork.com/freelancers/~01a8f42304bb2cda47
On Tue, Jun 27, 2023 at 12:10 PM melvin-bot[bot] @.***>
wrote:

📣 @Marvineekina23 https://github.com/Marvineekina23! 📣
Hey, it seems we don’t have your contributor details yet! You'll only have
to do this once, and this is how we'll hire you on Upwork.
Please follow these steps:

Get the email address used to login to your Expensify account. If
you don't already have an Expensify account, create one here
https://new.expensify.com/. If you have multiple accounts (e.g. one
for testing), please use your main account email.
Get the link to your Upwork profile. It's necessary because we only
pay via Upwork. You can access it by logging in, and then clicking on your
name. It'll look like this
https://www.upwork.com/freelancers/~01ca8ad8ce36b9eceb. If you don't
already have an account, sign up for one here
https://www.upwork.com/nx/signup/?dest=home.
Copy the format below and paste it in a comment on this issue.
Replace the placeholder text with your actual details.
[image: Screen Shot 2022-11-16 at 4 42 54 PM]
https://user-images.githubusercontent.com/30609178/231263719-a8a3b7d3-36a0-4d7f-8ad4-cebe1f560fa4.png
Format:

Contributor details
Your Expensify account email:
Upwork Profile Link:
—
Reply to this email directly, view it on GitHub
https://github.com/Expensify/App/issues/21407#issuecomment-1609101394,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A7YNI6MJ7YUSIWYMP4B36FLXNKPO7ANCNFSM6AAAAAAZRTNTCI
.
You are receiving this because you were mentioned.Message ID:
@.***>

@bfitzexpensify  when you have decided to not solve this issue then why  @kavimuru positing same issue with different name  #20611

@nitin-kukreti Please understand that kavimuru is just testing the bug reports from the slack channel (which you should be a part of to be a contributor) and the issue is originally reported by the reporter mentioned in the first comment of the issue. As a new contributor, please make sure you have read all the contributing guidelines and good luck with contributing!

@esh-g thank so much for information I thought It was intentional.

Thanks @esh-g.
@nitin-kukreti, if the same issue is reported twice (which has happened in this case) we close the later report since we otherwise we will be duplicating work. We still want to fix the problem, but want to keep the conversation and fix to one issue. If you would like to make a proposal to fix this, you can do so over on https://github.com/Expensify/App/issues/20611


Add HTTPException handling for if the engine fails to the /query endpoint #12 #13 #14 #15

Add HTTPException handling for if the engine fails to the /query endpoint #12 #13 #14 #15

 📝 Indexing
I'm indexing your repository.


Grammar mistake at 'keywords/volatile' docs

Issue moved from MicrosoftDocs/feedback#3895

Please respond to @MrYotic.

From @MrYotic on Thursday, February 2, 2023 11:51:55 PM
Describe the bug
https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/volatile?source=docs
There is a grammatical error in the Russian version of the documentation, a letter is missing.
English version: "There is no guarantee of a single total ordering of volatile writes as seen from all threads of execution"
English version: "Нет никакой гарантии единого общего прядка временных записей во всех потоках выполнения"
Mistake at "прядка", correctly "порядка".
There is no word "прядка", but has word "порядка (declination from порядок)" - order, when the original word is "ordering", it turns out everything converges
To Reproduce
Steps to reproduce the behavior:

Go to 'https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/volatile?source=docs'
Change language on 'Russian'
See error at first paragraph

Screenshots

Desktop:

OS: Windows 22H2
Browser: Chrome 109.0.5414.120
Version: 22

Issue moved from MicrosoftDocs/feedback#3895

Please respond to @welcome[bot].

From @welcome[bot] on Thursday, February 2, 2023 11:51:57 PM
Thank you for opening an issue! One of our team members will get back to you with additional information.
If this is a product issue, please close this issue and contact the product's support instead. For a list of support websites, see Support for Microsoft products and apps.

@kgliang A loc issue in Russian.

CEINTL work item 806111 filed to the LOC team on this issue.


[WIP] Dead code removal

Closes:  RHOAIENG-2497
Description

Changed code based on feedback from the google doc linked on this ticket.
How Has This Been Tested?

npm run test
Request review criteria:

Self checklist (all need to be checked):

[ ] The developer has manually tested the changes and verified that the changes work
[ ] Commits have been squashed into descriptive, self-contained units of work (e.g. 'WIP' and 'Implements feedback' style messages have been removed)
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[x] The developer has added tests or explained why testing cannot be added (unit or cypress tests for related changes)

After the PR is posted & before it merges:

[ ] The developer has tested their solution on a cluster by using the image produced by the PR to main

@christianvogt

/lgtm
/approve


Lumber jack not instacutting trees in 1.17 server

I've started up a server in 1.17, with a lot of origin mods, as well as custom origins, but no matter who picks lumberjack, it won't insta cut trees, everything else with lumberjack works just fine, but just insta cutting doesn't work, the wood you chop will stay for an extra second after chopping like the server recognizes that smth is supposed to happen. but nothing does, and yet sometimes after chopping almost all of the logs, except maybe 2 or 3, it will activate.
I can't find any reason why it's doing this. Does anyone have any ideas?

Me tooo I’m so mad idk why tell me if you figure it out please


DriverIOError: Failed to create a new (non existing yet) Shapefile on the disk

Hi devs,
I encountered a new problem this morning after having updated fiona.
Here's the log:
Traceback (most recent call last):

  File "<ipython-input-71-8a0d31d12aff>", line 16, in <module>
    'w', 'ESRI Shapefile', schemaf) as f:

  File "/usr/local/lib/python3.6/dist-packages/fiona/env.py", line 407, in wrapper
    return f(*args, **kwargs)

  File "/usr/local/lib/python3.6/dist-packages/fiona/__init__.py", line 264, in open
    **kwargs)

  File "/usr/local/lib/python3.6/dist-packages/fiona/collection.py", line 157, in __init__
    self.session.start(self, **kwargs)

  File "fiona/ogrext.pyx", line 1066, in fiona.ogrext.WritingSession.start

DriverIOError: Failed to create file  /media/username/data/TEMP/19.shp: No such file or directory

Expected behavior and actual behavior.
I am writing a new Shapefile from data, which is an instance of a shapely.geometry.polygon.Polygon.
The Shapefile obviously doesn't exist on the disk yet.
It was working before the update.
Steps to reproduce the problem.
import os
import fiona
from shapely.geometry import Polygon, mapping

base_directory = '/media/username/data/TEMP/' # feel free to adapt this path
k=19
schemaf = {
    'geometry': 'Polygon',
    'properties': {'id': 'int'},
}
my_shapely_simple_polygon = Polygon([(0, 0), (1, 1), (1, 0)])
my_shapefile = os.path.join(base_directory, str(k)+'.shp')

# Write the data to a Shapefile:
with fiona.open(my_shapefile,
                'w', 'ESRI Shapefile', schemaf) as f:
    f.write({'geometry': mapping(my_shapely_simple_polygon), # instance of shapely.geometry.polygon.Polygon
             'properties': {'id': k},})

Operating system
Ubuntu 18.04 64 bit 5.3.0-42-generic x86_64 GNU/Linux
Fiona and GDAL version and provenance
GDAL 2.4.0, released 2018/12/14
Fiona                         1.8.13.post1
Shapely                       1.7.0
In python3:
>>> from osgeo import gdal
>>> gdal.__version__
'2.4.0'

>>> import fiona
>>> fiona.__version__
'1.8.13.post1'

>>> import shapely
>>> shapely.__version__
'1.7.0'

Python3 itself:
Python 3.6.9 (default, Nov  7 2019, 10:44:02)
[GCC 8.3.0] on linux.

Thanks!

@swiss-knight
Does it work if you remove the white space in front of the path?
base_directory = ' /media/username/data/TEMP/' # feel free to adapt this path

@swiss-knight
Does it work if you remove the white space in front of the path?
base_directory = ' /media/username/data/TEMP/' # feel free to adapt this path

Fixed.
It doesn't change the behavior of the issue.

import os
import fiona
from shapely.geometry import Polygon, mapping

base_directory = '/tmp' # feel free to adapt this path
k=19
schemaf = {
    'geometry': 'Polygon',
    'properties': {'id': 'int'},
}
my_shapely_simple_polygon = Polygon([(0, 0), (1, 1), (1, 0)])
my_shapefile = os.path.join(base_directory, str(k)+'.shp')

# Write the data to a Shapefile:
with fiona.open(my_shapefile,
                'w', 'ESRI Shapefile', schemaf) as f:
    f.write({'geometry': mapping(my_shapely_simple_polygon), # instance of shapely.geometry.polygon.Polygon
             'properties': {'id': k},})

works for me with Fiona 1.8.13.post1.
Could you test if this works also for you? If yes, can you check if the directory /media/username/data/TEMP actually exists and you have write permissions on it?

Indeed, this also works for me.
Here is my rights on the already existing folder on my disk:
$ ls -larth /media/username/Data/ | grep TEMP
drwxr-xr-x   2 username username 4.0K avr  1 13:49 TEMP

Strange...

I'm currently not sure what causes this. The obvious cause would have been the directory to write in does not exist or writing is not possible.  /media is normally used for removable media, thus it could be that there is an issue with that.
Does it work e.g. with the GPKG driver?
The error happens probably within the GDAL Shapefile driver: https://github.com/OSGeo/gdal/blob/beb2622c94ea36c3f392de3ab00c960108815353/gdal/ogr/ogrsf_frmts/shape/shpopen.c#L1301
Do you use the ubuntu package or have you Fiona installed with pip?
You could try to downgrade Fiona to the previous version and check if the gdal version Fiona uses has changed with fiona.get_gdal_release_name(). If this behavior depends on the version of gdal, this could be a hint.

earasing all what I've written because I've been surprised it was working with the previous version of fiona, and then, that it was always working once back to the latest version (where it didn't worked before)
So, I investigated a little more from that point, to figure out I honestly made a mistake.
I'll try to explain what happened so that it may, hopefully, help others...
Somewhere before the short snippet I pasted in my script, I had this piece of code;
base_directory = os.path.join(project_directory, 'TEMP')
(...)
try:
    if not os.path.isdir(base_directory):
        os.mkdir(base_directory)
except:
    pass

Then I used the base_directory as the root directory where to store the Shapefile.
It went all fine.
But I made a recent upgrade to split different types of data into two new sub-folders;
base_directory = os.path.join(project_directory, 'TEMP', 'sub_folder_1')
(...)
try:
    if not os.path.isdir(base_directory):
        os.makedirs(base_directory)
except:
    pass

Then the fiona error was raised!
And indeed, what should have been raised here is this, but it was muted because of the try catch:
os.mkdir(base_directory)

Traceback (most recent call last):

  File "<ipython-input-37-452d89490330>", line 1, in <module>
    os.mkdir(base_directory)

FileNotFoundError: [Errno 2] No such file or directory: '/media/username/Data/TEMP/sub_folder_1/'

This is obviously because os.mkdir() does not handle building recursively sub-directories, as the -p flag of the real Ubuntu mkdir command would have done.
So prior to the change, it was able to make that TEMP directory because it was at the first hierarchical level from the existing project directory.
And after the change, I asked this method to directly build a level 2 sub-directory, namely, TEMP/sub_folder_1, which is not possible.
Instead, I have to use os.makedirs() which handles such recursive cases!
I'm really sorry for having making you guys lose of your precious time. :( I feel ashamed.


Camera Only for bev segmentation

Hi，I want to know the camera only results on the bev segmentation for nuscenes validation. The metric is not provided in the paper and readme.

Are there any conclusions or metrics available in this regard?
How can i only use camera to do inference?

Thanks!

Unfortunately, we haven't tried the camera-only setting for BEV map segmentation.
As mentioned in issue,  using camera only would require removing modules related to lidar and fusion in the config and making modifications to the UniTR code to skip lidar processing. Currently, we're on a tight deadline and don't have time to make these code changes. However, I believe that once you understand the code, making it accept camera only input shouldn't be too difficult.

Thank for your replay

For BEV map segmentation, we haven't tested metrics for camera-only setting. We directly modified the DSVT backbone to support multi-modal inputs, so we haven't thoroughly examined our model's performance in camera-only setting, nor have we compared it to other methods.


Back faces are culled in sensors (both RGB and depth)

Environment

OS Version: Ubuntu 18.04
Source or binary build? binary 4.1.0
If this is a GUI or sensor rendering bug, describe your GPU and rendering system. Otherwise delete this section.

Rendering plugin: ogre2

[x] Sensor rendering error.

Generally, mention all circumstances that might affect rendering capabilities:

[x] running on real hardware

Rendering system info:

.
$ LANG=C glxinfo -B | grep -i '\(direct rendering\|opengl\|profile\)'  # might require installing mesa-utils package
direct rendering: Yes
    Preferred profile: core (0x1)
    Max core profile version: 4.6
    Max compat profile version: 4.6
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.2
OpenGL vendor string: AMD
OpenGL renderer string: AMD RENOIR (DRM 3.40.0, 5.11.15-051115-generic, LLVM 12.0.0)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 21.0.3 - kisak-mesa PPA
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL version string: 4.6 (Compatibility Profile) Mesa 21.0.3 - kisak-mesa PPA
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 21.0.3 - kisak-mesa PPA
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
$           ps aux | grep Xorg
peci1     2932  2.9  0.3 2267408 113700 tty2   Sl+  dub27  92:55 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3
peci1    16226  0.0  0.0  15672  1024 pts/1    S+   22:53   0:00 grep --color=auto Xorg
$           sudo env LANG=C X -version  # if you don't have root access, try to tell the version of Xorg e.g. via package manager
X.Org X Server 1.20.8
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.15.0-140-generic x86_64 Ubuntu
Current Operating System: Linux cras-17 5.11.15-051115-generic #202104161034 SMP Fri Apr 16 10:40:30 UTC 2021   x86_64
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.11.15-051115-generic root=UUID=d982512a-7987-4852-992c-9aeeddc50c46 ro amd_iommu=on
Build Date: 08 April 2021  01:40:27PM
xorg-server-hwe-18.04 2:1.20.8-2ubuntu2.2~18.04.5 (For technical support please see http://www.ubuntu.com/support)
Current version of pixman: 0.34.0
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.

Some illustration images recorded by sensor cameras:

I'm not sure if there are cases when culling would be desirable in sensor cameras... But the images posted above (from tunnel_circuit_practice_02 SubT world) are definitely wrong.

In this particular case, I think this is a problem mainly with the the world design. It looks like the robot sensor ended up in a place that it shouldn't be and we should fix that.
We made the exterior part / shell of these tunnel meshes using single sided triangles and oriented with normal facing the inside on purpose so that we can see through them. Disabling culling of these triangles is possible using the <double_sided> param (which disables culling while also making sure lighting is correctly applied) but it's done on a per visual material basis (as opposed to per camera setting). It's off by default mainly as we don't want to render more triangles than necessary. If we enable this for all meshes in the sensor camera view, I think there'll probably be some performance hit.

Thanks for the explanation. The design of the world is okay, I teleported the robot outside the walls.
Would adding <force_double_sided> to cameras make sense?

Would adding <force_double_sided> option to cameras make sense?

When we enable double sided triangles on a visual. All cameras will see them as double sided. To selectively enable dthis for one particular camera, we would need to toggle on and off double sided rendering before and after that particular camera update. This is possible but just more performance overhead needed for invalidating and updating the materials between updates.


Bump and pin dependencies for dev preview

recheck
Error from server (InternalError): error when creating "STDIN": Internal error occurred: failed calling webhook "mopenstackdataplane.kb.io": failed to call webhook: Post "https://dataplane-operator-controller-manager-service.openstack-operators.svc:443/mutate-dataplane-openstack-org-v1beta1-openstackdataplane?timeout=10s": endpoints "dataplane-operator-controller-manager-service" not found

recheck

recheck
Failure downloading https://golang.org/dl/go1.19.10.linux-amd64.tar.gz, Request failed: <urlopen error [Errno 101] Network is unreachable>

recheck

/lgtm

recheck
Error from server (InternalError): error when creating "/home/zuul/ci-framework-data/artifacts/manifests/openstack/nncp/cr/crc-8tnb7-master-0_nncp.yaml": Internal error occurred: failed calling webhook "nodenetworkconfigurationpolicies-mutate.nmstate.io": failed to call webhook: Post "https://nmstate-webhook.openshift-nmstate.svc:443/nodenetworkconfigurationpolicies-mutate?timeout=10s": no endpoints available for service "nmstate-webhook"

recheck


wrap_c.init() fails

despite configuring LLVM_CONFIG, it can't find libclang:
julia> ENV["LLVM_CONFIG"]="/usr/local/Cellar/llvm/3.6.2/bin/llvm-config"
"/usr/local/Cellar/llvm/3.6.2/bin/llvm-config"

julia> using Clang

julia> context = wrap_c.init()
ERROR: error compiling init: error compiling __init#6__: could not load library "libclang"
dlopen(libclang.dylib, 1): image not found

how do i tell it the right path?  it works manually:
julia> dlopen("/usr/local/Cellar/llvm/3.6.2/lib/libclang")
WARNING: dlopen is deprecated, use Libdl.dlopen instead.
 in depwarn at deprecated.jl:73
 in dlopen at deprecated.jl:30
while loading no file, in expression starting on line 0
Ptr{Void} @0x00007f8c24c01680

Virtually the same problem with Ubuntu 15.10:
               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.4.1 (2015-11-08 10:33 UTC)
 _/ |\__'_|_|_|\__'_|  |  Official http://julialang.org/ release
|__/                   |  x86_64-unknown-linux-gnu

julia> ENV["LLVM_CONFIG"]="/usr/lib/llvm-3.7/bin/llvm-config"
"/usr/lib/llvm-3.7/bin/llvm-config"

julia> Pkg.add("Clang")
INFO: Installing Clang v0.1.0
INFO: Building Clang
g++ wrapclang.cpp.o -rdynamic -shared -o libwrapclang.so -L/usr/lib/llvm-3.7/lib  -L/usr/lib/llvm-3.7/lib -lclang
INFO: Package database updated

julia> using Clang

julia> context = wrap_c.init()
ERROR: error compiling init: error compiling __init#6__: could not load library "libclang"
libclang: cannot open shared object file: No such file or directory

julia> dlopen("/usr/lib/llvm-3.7/lib/libclang")
WARNING: dlopen is deprecated, use Libdl.dlopen instead.
 in depwarn at deprecated.jl:73
 in dlopen at deprecated.jl:30
while loading no file, in expression starting on line 0
Ptr{Void} @0x000000000261f930

I don't think mixing LLVM versions in a single image is supportable, although it may have worked in some specific circumstances. Building Clang as part of Julia (with BUILD_LLVM_CLANG=1 in Make.user) works fine.

Do I understand correctly that in order to use Clang, one must build Julia always from source?

Yes, unless you know some way to get libclang compiled against a different
LLVM version to load in the same process (I tried various RTLD_ options and
didn't have any luck).
On Wed, Dec 2, 2015 at 10:23 AM, Kaj Wiik<EMAIL_ADDRESS>wrote:

Do I understand correctly that in order to use Clang, one must build Julia
always from source?
—
Reply to this email directly or view it on GitHub
https://github.com/ihnorton/Clang.jl/issues/150#issuecomment-161331126.


src/timer/mod.rs: method not found in `&mut u16 in pcs register.

I am trying to see if I can fix #2672 compile issue on the STM32L4.
So I modified the stm32-data, generated the data.
Now I compiled embassy-stm32, which usage 963fda240484e0105408185f955703e2c02f9187 as base also has pull #2672 in it, with my own generated data. build cmd: cargo build -F stm32l4s5zi,memory-x --target thumbv7em-none-eabihf.
Octospi error's are not showing up any more now I am getting errors about a timer.
It seems related to latest commit https://github.com/embassy-rs/stm32-data/commit/f84633553331c2d154ee72de779a40cbb10fd1bd.
# cargo build -F stm32l4s5zi,memory-x --target thumbv7em-none-eabihf
   Compiling embassy-stm32 v0.1.0 (/home/r/dev/rust/embassy/embassy-stm32)

error[E0599]: no method named `set_psc` found for mutable reference `&mut u16` in the current scope
   --> src/timer/mod.rs:100:36
    |
100 |             regs.psc().write(|r| r.set_psc(psc));
    |                                    ^^^^^^^ method not found in `&mut u16`

error[E0599]: no method named `psc` found for type `u16` in the current scope
   --> src/timer/mod.rs:140:41
    |
140 |             let psc = regs.psc().read().psc();
    |                       ----              ^^^ method not found in `u16`
    |                       |
    |                       method `psc` is available on `TimCore`

error[E0599]: no method named `set_psc` found for mutable reference `&mut u16` in the current scope
   --> src/timer/mod.rs:381:36
    |
381 |             regs.psc().write(|r| r.set_psc(psc));
    |                                    ^^^^^^^ method not found in `&mut u16`

error[E0599]: no method named `psc` found for type `u16` in the current scope
   --> src/timer/mod.rs:395:41
    |
395 |             let psc = regs.psc().read().psc();
    |                       ----              ^^^ method not found in `u16`
    |                       |
    |                       method `psc` is available on `TimGp32`

For more information about this error, try `rustc --explain E0599`.

rust 1.75

It is this commit https://github.com/embassy-rs/stm32-data/pull/436/commits/cc525f1b252c91272529cbea1d3d4399b43c60b4 that causes the issue for me.


8-bit inference Tensorflow

Hello,
I was wondering about these below questions.

Recently tensorflow provides 8-bit inference option and it seems to be suitable for embedded devices. Also 8-bit inference (8-bit mul & 32 bit accumulation) using low level function gemmlowp used by Tensorflow (optimized heavily for ARM SIMD NEON) shows superior performance. Is there any future plan to develope low-level function using wingorad algorithm for 8-bit computation precision?

Will winograd algorithm have benefits (performance) over im2col+GEMM in case of 8-bit computation precision? What will be the impact on accuracy?

No plans for 8-bit inference.


UML-1337: event codes renamed

Purpose
https://opgtransform.atlassian.net/browse/UML-1337
Fixes UML-1337
Approach
Explain how your code addresses the purpose of the change
Learning
Any tips and tricks, blog posts or tools which helped you. Plus anything notable you've discovered about the Use a Lasting Power of Attorney service
Checklist

[X] I have performed a self-review of my own code
[ ] I have added relevant logging with appropriate levels to my code
[ ] I have updated documentation (Confluence/GitHub wiki/tech debt doc) where relevant
[ ] I have added tests to prove my work
[ ] I have added welsh translation tags and updated translation files
[ ] I have run an accessibility tool on any pages I have made changes to and fixed any issues found
[ ] The product team have tested these changes

@GemTay  - request a review please :)


Remove references to ASCII keys

Codecov Report

Merging #10 (d2452d0) into master (d01a188) will increase coverage by 0.24%.
The diff coverage is 96.29%.

@@            Coverage Diff             @@
##           master      #10      +/-   ##
==========================================
+ Coverage   90.12%   90.37%   +0.24%
==========================================
  Files           4        4
  Lines         243      270      +27
==========================================
+ Hits          219      244      +25
- Misses         24       26       +2

Impacted Files
Coverage Δ

branca_test.py
96.98% <96.29%> (-0.14%)
:arrow_down:

branca.py
94.33% <0.00%> (-1.89%)
:arrow_down:

Continue to review full report at Codecov.

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


Usage of additional package in Fay-code

Hi!
I try to use additional package in my Fay-code. This is raw-strings-qq, and it already installed (globally, not in sandbox). So I try to compile:
$ fay --Wall --package fay-jquery,fay-text,raw-strings-qq --include=./templates/home/register/form/ templates/home/register/form/Form.hs -o static/js/Form.js

but:
fay: unable to find (existing) package's share dir: raw-strings-qq
tried: /Users/dshevchenko/Library/Haskell/share/ghc-7.8.3-x86_64/raw-strings-qq-1.0.2
/Users/dshevchenko/Library/Haskell/share/ghc-7.8.3-x86_64/raw-strings-qq-1.0.2/src

Why share dir with sources instead of .hi-file?? How can I specify path to this package?

Hi @denisshevchenko,
In short, you can't use raw-strings-qq with Fay.
Most haskell packages are not compatible with fay, and template haskell is notably not supported either. I think it's safe to say that all fay compatible packages have a dependency on fay-base. If you wish to use existing haskell packages you should look into Haste or GHCJS instead, though I'm not sure how far GHCJS has gotten with template-haskell support.
Fay compiles all dependencies from source, it would need separate compliation artifacts to support using already compiled code. This is what #324 is about.
Hope this helps,

Ok, thanks.

If you wish to use existing haskell packages you should look into Haste or GHCJS instead...

No, I like Fay.

:)


Changes to include source tag to xrpl tx

This PR should include a sourceTag for XRPL withdraw (bridging TRN->XRPL) tx.

lgtm! might require a local test to verify all good.

so, I did a local test by setting door account, next threshold sequence and everything..
and did a withdraw

 const blob = '0x12000022800000002302515fdb2400000000202901d80ffc6140000000000000076840000000000f4240730081143216fd40be8f9b0016253e5244085375d887a53e831416a5e24f755c0b2e6ecac217b0b052921fb5d000';
    console.log(JSON.stringify(xrpl.decode(blob)));
    console.log('*********')

{"TransactionType":"Payment","Flags":2147483648,"SourceTag":38887387,"Sequence":0,"TicketSequence":30937084,"Amount":"7","Fee":"1000000","SigningPubKey":"","Account":"rnZiKvrWFGi2JfHtLS8kxcqCqVhch6W5k5","Destination":"rshkbs2J5RkwDeD79MhJ5yU7KYhbU3YyEm"}
*********

Also when I decode the blob, I get the source tag as expected.
To test it, we would need to deploy on porcini to get the signature to reach the sign quorum.


Support for Pulumi's stack configuration

ProTI does not access stack configuration nor generate its own values for Pulumi's configuration mechanism. We should add an interface to generator plugins to generate accessed configuration values.

Related feature request for Pulumi https://github.com/pulumi/pulumi/issues/16042


test: add unit tests

PR to add unit tests to Open Trip Planner's API:-

Plan
Bike Rental
Server Info

This will be tested across both Chicago and Tampa's GTFS feed.
"Closes #8"

Now that #13 is merged, we can use that in the unit tests. You can create a new folder for a JVM desktop package, and create a tests folder within that (just like a normal Java desktop project - see https://github.com/CUTR-at-USF/pelias-client-library/tree/master/src/test. We shouldn't even need to create the desktop application itself.
There are some good basic examples for Kotlin tests in this post - https://github.com/CUTR-at-USF/pelias-client-library/tree/master/src/test.

@barbeau To create a new JVM desktop package, I would still need a new gradle config for the folder, right?
Also, do you think writing unit tests within android is much neater?

To create a new JVM desktop package, I would still need a new gradle config for the folder, right?

You'll need a build.gradle that includes testImplementation for the dependencies you'll use in the tests.

Also, do you think writing unit tests within android is much neater?

Not sure (I haven't seen how this looks with Kotlin JVM code), but running instrumented Android tests on CI is hard to configure (I haven't tackled it on GitHub Actions, but it's been a huge pain on Travis) and very slow. Even if the tests for JVM aren't as clean as Android, IMHO it's worth the reliability and speed that we'll gain on CI vs. using Android.

@BumbleFlash If it's easiest you can just create a sample Gradle project the same way you created the test JVM project (https://github.com/BumbleFlash/opentripplanner-multiplatform-test), and just leave the normal Main empty.

Actually, the above is wrong - it will look different because this project is multiplatform. I found this example multiplatform project that includes JVM tests:
https://github.com/orangy/multiplatform-lib/blob/master/build.gradle#L66

@barbeau The instrumented tests are slower but the unit tests should be relatively faster? If you see the android package, we have three folders and the test folder is used for writing tests that will execute on the development machine and not on an android device.

Actually, the above is wrong - it will look different because this project is multiplatform. I found this example multiplatform project that includes JVM tests:
https://github.com/orangy/multiplatform-lib/blob/master/build.gradle#L66

Here the jvmMain and jvmTest are a part of the shared library just like androidMain and iosMain where the dispatcher code is written. The sourceSets are used to help the library differentiate (when needed) between the platforms in case we need to perform platform-specific code or say the Dispatcher instance. I'm not sure how "right" it is for us to write tests inside a source set.

Here the jvmMain and jvmTest are a part of the shared library just like androidMain and iosMain where the dispatcher code is written. The sourceSets are used to help the library differentiate (when needed) between the platforms in case we need to perform platform-specific code or say the Dispatcher instance. I'm not sure how "right" it is for us to write tests inside a source set.

The tests for the library should be under the library folder, which I believe is the above design. The remaining question in my mind if if they can be in the common folder or need to be in platform specific one. And I believe because we're using platform specific coroutine libraries the tests would need to be in the platform specific folder.

If you see the android package, we have three folders and the test folder is used for writing tests that will execute on the development machine (JVM) and not on an android device.

If the android tests don't require a running device or emulator to execute then then should be the same as JVM specific tests as far as CI is concerned. So that implementation would be fine with me if it's easier than tests on the JVM platform.

@barbeau Got the unit tests to work finally. I'm using latches to pause the main thread and wait for the execution of the coroutine to complete and update the object.
I moved the assertions outside of the callbacks to make sure it executes on the main thread. I couldn't keep it inside unless I can magically join the suspended thread to the main thread and re-execute it again. Using latches seemed more elegant compared to re-engineering async and waiting for it to complete.

@BumbleFlash looks like there are conflicts after merging #16 - could you resolve them?

@barbeau Thanks for your review!

I'd still prefer to keep this as non-nullable.
I'll test to see if adding parameters to the github url affects anything.

Pushing a premature test for Tampa bay to see if it builds on the CI. For some reason, the unit test for the Plan API throws the following error:-
kotlinx.serialization.json.internal.JsonDecodingException: Unexpected JSON token at offset 220: Encountered an unknown key 'stopId'.
Use 'ignoreUnknownKeys = true' in 'Json {}' builder to ignore unknown keys.
JSON input: ..... Av",
      "stopId": "1:4886",
      "stopCode": "4886",
  .....

It runs fine on an instrument though.

Yep I can confirm the unit tests are not working properly on my local system for the Tampa Bay dataset. Using the CI to test my assertions.

@barbeau I came across this error while I was testing assertions in the jvmtest folder.
Exception in thread "DefaultDispatcher-worker-1 @coroutine#1" java.lang.NoClassDefFoundError: Ljava/net/http/HttpClient;
	at java.lang.Class.getDeclaredFields0(Native Method)
	at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
	at java.lang.Class.getDeclaredField(Class.java:2068)
	at java.util.concurrent.atomic.AtomicLongFieldUpdater$CASUpdater$1.run(AtomicLongFieldUpdater.java:388)
	at java.util.concurrent.atomic.AtomicLongFieldUpdater$CASUpdater$1.run(AtomicLongFieldUpdater.java:386)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.util.concurrent.atomic.AtomicLongFieldUpdater$CASUpdater.<init>(AtomicLongFieldUpdater.java:385)
	at java.util.concurrent.atomic.AtomicLongFieldUpdater.newUpdater(AtomicLongFieldUpdater.java:89)
	at io.ktor.client.engine.java.JavaHttpEngine.<clinit>(JavaHttpEngine.kt)
	at io.ktor.client.engine.java.Java.create(Java.kt:16)
	at io.ktor.client.HttpClientKt.HttpClient(HttpClient.kt:42)

The build fails at this line: github.com/CUTR-at-USF/opentripplanner-client-library/blob/tests/library/src/commonMain/kotlin/edu/usf/cutr/otp/plan/api/PlanApi.kt#L56.
I'm guessing the library is not being bundled correctly and the tests don't recognize the library's dependecy. Any wisdom on what's exactly going on and how to fix it?

I came across this error while I was testing assertions in the jvmtest folder.

@BumbleFlash Is this only happening locally for you? It seems like it's passing on CI?

@BumbleFlash Is this only happening locally for you? It seems like it's passing on CI?

I haven't pushed the jvmTest to the PR yet. CI is only running the android unit tests. I'm happy to push it in the CI and see if it builds.

I get similar results when trying Ktor Jetty engine:
                implementation("io.ktor:ktor-client-jetty:1.5.3")

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

expected:<07ed36f0149a00dcd9a91f4d225bc4bb> but was:<null>
Expected :07ed36f0149a00dcd9a91f4d225bc4bb
Actual   :null
<Click to see difference>

java.lang.AssertionError: expected:<07ed36f0149a00dcd9a91f4d225bc4bb> but was:<null>
	at org.junit.Assert.fail(Assert.java:89)
	at org.junit.Assert.failNotEquals(Assert.java:835)
	at org.junit.Assert.assertEquals(Assert.java:120)
	at org.junit.Assert.assertEquals(Assert.java:146)
	at edu.usf.cutr.otp.chicago.BikeRentalApiUnitTest.testBikeRentalApi(BikeRentalApiUnitTest.kt:32)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
	at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:119)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
	at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
	at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
	at java.lang.Thread.run(Thread.java:748)

@barbeau Thanks for testing this for me. The null assertions are the result of any failed API calls or errors while parsing the json object. I'll let you know once I test it on my end.

@barbeau So when I used Jetty engines, a java.lang.IllegalStateException: No Client ALPNProcessors! was thrown. Looks like ALPNs are only available after JDK9.
I switched to implementation("io.ktor:ktor-client-apache:1.2.3-1.3.50-eap-5") but it wouldn't parse my JSON without explicitly specifying content headers.
I updated the library to implementation("io.ktor:ktor-client-apache:1.5.0"), it worked! Yay.

Cancelled the previous workflow: https://github.com/CUTR-at-USF/opentripplanner-client-library/pull/11/checks?check_run_id=2343263914. It was waiting indefinitely for the tests to pass.

I updated the library to implementation("io.ktor:ktor-client-apache:1.5.0"), it worked! Yay.

Nice! 🚀

@barbeau Tested the multiplatform-test project and it seems to work perfectly with the client engine change. It's ready for review now. :)

So given that there is definitely different behaviors on different engines (including JVM vs. Android), I'm wondering if we should try and keep the tests that also run on Android (but don't require emulator or device).
Could we move the assert statements to a method in the common section, and then just call that from both androidTest and jvmTest?
It wouldn't be much code duplication if we didn't need all the asserts twice (one in androidTest and one in jvmTest).

If we do the above, we should also only have one set of JSON files, in the jvmTest resource directory.

Actually, I think all the test code within the methods are the same? Maybe all the code within the existing methods could move to methods in common that are invoked from androidTest and jvmTest?
Normally this code would live in commonTest by itself, but my understanding is that we can't do that here because Ktor needs an HTTP engine, and those only exist on each platform, not in common.

@barbeau Yes, if we move the tests to commontests folder, I don't think it will have access to any client engines. As you said, the engines are not platform-independent and the API functions should be explicitly called from the respective platform. But don't the asserts have to be in the platform code if we are testing how the library works in a project?

But don't the asserts have to be in the platform code if we are testing how the library works in a project?

I'm not entirely sure about this, but I would think that if you put the code in commonTests and you treat it like a library API call from the platform folders (e.g., jvmTest or androidTest) the code would still run on the platform JAR/thread, which would use the platform engine.

For example, see https://vkuzel.com/shared-test-sources-in-gradle-multi-module-project.

@BumbleFlash After looking at this myself I'm not sure the shared test code solution is straightforward, so I would propose we move the existing tests in app to androidTest, and otherwise leave everything else as-is. We can tackle the shared code in a separate PR.

@barbeau moved the code to androidTest and the build will run two sets of tests. Looks like it's passing all the tests.

I'll update the JSON file URLs in the master branch so the tests pass.

Yep opening a PR for that.

Ok - feel free if you've got it ready

Just saw the "I will" in your message. Sorry about that. I'm happy to do it anyways!

No worries, thanks for the PR!


Docs: tweaks to content code

add missing angle brackets to <code>
make code block example actually multi-line, still add <code> as it's semantically code we're showing

This would remove the only non-Reboot example of using <pre> without <code>. Seems like we should include some example of that case.

As this is in the "Code" section, it makes sense to keep this example as blocks of code (and change the heading accordingly, plus fix the weird start to the description para). Worth introducing a non-code <pre> example somewhere else, such as in "Typography" ?

Yeah, Typography sounds reasonable.


Set Github Action to automatically refresh data

Create a script so that what we are currently running manually to refresh the data can be done automatically, once a month (while still keeping the manual refresh Github Action).

I create this issue and I assign it to myself!

Max did this- chec back Nov 1

This works! Just a month delayed in closing it.


Incorrect solution found for ROOT+Python 3

When using mamba to create an environment for root on macOS it chooses an old root build for Python 3. The latest build is chosen for Python 2 and conda always behaves as I expect (eventually... 🐌).
Example
mamba create --name test-env python=2.7 root --dry-run

Chooses: root               conda-forge/osx-64::root-6.16.00-py27_blas_openblash6de8b3b_7
mamba create --name test-env python=3.7 root --dry-run

Chooses: root               conda-forge/osx-64::root-6.16.00-py37_blas_openblash77af0b3_4

I just opened a PR #11 which fixes the issues for geopandas. might fix yours, too!
If you do pip install -e . from the git clone that should be enough to get a dev version working :)

Yup that seems to do the trick, thanks!

let us know if you find other issues!


Prevent Finder from popping up while palera1n is running

Improved version of #303 (which was closed by the author) that doesn't add a dependency on an external binary.

Not a bad idea but I removed this a while ago since people were complaining that palera1n was breaking devices popping up in finder because they restarted their PC while palera1n was running which then it didn't execute the exit handler

How about adding a ./palera1n.sh resetfinder command?

Actually, I have a better idea, we can just use this instead, which is guaranteed to not persist across reboots:
killall -STOP AMPDevicesAgent AMPDeviceDiscoveryAgent MobileDeviceUpdater


Changes for Maven publishing

We need to make sure our POM includes a few things. See below for what I modified the POM file to include. We need to make sure the file that comes out of our build has these values:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.microsoft.aspnet</groupId>
  <artifactId>signalr</artifactId>
  <version>0.1.0-alpha1</version>
  <inceptionYear>2018</inceptionYear>
  <description>ASP.NET Core SignalR Client for Java applications</description>
  <url>https://github.com/aspnet/SignalR</url>
  <name>${project.groupId}:${project.artifactId}</name>
  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>
  <scm>
    <connection>scm:git:git://github.com/aspnet/SignalR.git</connection>
    <developerConnection>scm:git:git://github.com/aspnet/SignalR.git</developerConnection>
    <url>http://github.com/aspnet/SignalR/tree/master</url>
  </scm>
  <developers>
    <developer>
      <id>microsoft</id>
      <name>Microsoft</name>
    </developer>
  </developers>
  <dependencies>
    <!-- snipped, these were fine -->
  </dependencies>
</project>

Note that we reserved the groupId com.microsoft.aspnet, so we need to change the groupId to match that.

We also need the <developer> section filled in. Stand-by for updated blurb above.

Also the output file names should match the artifactId. Currently the artifactId is signalr, but the files are signalr-client-0.1.0-preview1.jar. We should rename the files to signalr-0.1.0-preview1.jar,pom,etc.

Alright, working on this now

Done here: 5843b5415b56367de53f78376d94cac61f6fc0a7


Update Coil to 1.0.0.

What does this PR do?
Updates Coil to the 1.0.0 stable release.
Also I noticed you're using ImageRequest.Listener to listen for errors. I'd recommend converting to use EventListener since it allows you to listen to error events globally for an ImageLoader. EventListener will likely be marked as stable in the next release.
Motivation
What inspired you to submit this pull request?
Additional Notes
Anything else we should know when reviewing?
Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] Make sure you discussed the feature or bugfix with the maintaining team in an Issue
[ ] Make sure each commit and the PR mention the Issue number (cf the CONTRIBUTING doc)

Hello @colinrtwhite And thanks a lot for this Pull Request, we'll make some test to ensure it's working as expected 👍
Regarding the EventListener, we're still waiting for it to become stable before implementing it.

This PR looks really good. One question though before merging,  @colinrtwhite. If people are using a lower version of Coil, the dependency resolution will force them to use 1.0.0, are there any incompatibilities that could arise from that ? If not we're good to merge.

@xgouchet There are no binary incompatible changes (or major behaviour changes) between 0.12.0 and 1.0.0.


Adding DHBW Stuttgart

DHBW Websites:
https://www.dhbw-stuttgart.de
Informatics:
https://www.dhbw-stuttgart.de/themen/studienangebot/fakultaet-technik/informatik/profil/
Email Domain:
https://www.dhbw-stuttgart.de/themen/einrichtungen/itservice-center/informationen-fuer-studierende/e-mail-an-der-dhbw-stuttgart/
It's a university in Stuttgart -Germany which offers Bachelors and Masters to a variety of studies including informatics. This Email Domain should only be for students not staff.

@janniksinz Pull request merged. Thank you!


Infinite Loop when the input is {"

Describe the bug
I was trying the json response streaming from openai api and fix it using this library. When the json input was {" it got my program stuck for some reason. After deep investigation, I found it was an infinite loop in this library. Attached below are some screenshots with what's happening and the function that it's happening in. I added some print() in the library code to check what's happening.
To Reproduce
Steps to reproduce the behavior:

Import the library
make your JSON string {"
use the repair_json function from the library
You will have a stuck program with an infinite loop.

Expected behavior
Should throw an error or have an empty object like {}.
Screenshots

Desktop (please complete the following information):

OS: MacOS Sonoma
Version 0.4.1

Thanks for reporting the bug, I have released 0.4.2 with the fix


conda-build is not ready yet

xref: https://github.com/conda-forge/staged-recipes/pull/10831#issuecomment-584884833

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

Merging this temporarily to fix conda-build failures.


[CT-3403] use of ref() in sources yml as we can use var()

Is this your first time submitting a feature request?

[X] I have read the expectations for open source contributors
[X] I have searched the existing issues, and I could not find an existing issue for this feature
[X] I am requesting a straightforward extension of existing dbt functionality, rather than a Big Idea better suited to a discussion

Describe the feature
is there a way to use {{ ref('model') }} inside a source yml - I have a case where it makes sense to have that option
I want to have
tables:
- name: B_TABLE
  indentifier: b_table
- name C_TABLE
  identifier: c_table"{{ var('some_var') }}"
- name: A_TABLE
  identifier: " {{ ref('a_model_a')}} ""

note
tables:
- name: B_TABLE
  indentifier: b_table
- name C_TABLE
  identifier: c_table"{{ var('some_var') }}"

works
so logically I see usage of ref() as well
Describe alternatives you've considered
use sets to hold them in the model
but so I have duplicated code to support the fact I cannot inject ref() in sources yml
Who will this benefit?
more flexible as I can use ref into source yml
especially for dev
Are you interested in contributing this feature?
No response
Anything else?
No response

@obar1 Thanks for opening!
I feel quite strongly that we shouldn't do this — it means that your source table depends on your model, rather than the other way around! There are few things in dbt more precious than the integrity of the DAG.
If what you want is a naming convention where a source table and a model share (most of) a name, using a variable to set both feels like a much more reasonable way to go.
Is there anything you think I'm missing?

hi @jtcohen6
I have tables (I cannot rename) and I dont want to start creating views on top of it
in dev/uat/prod all are different
I wanted a source.yml
- name: some_data_dev
  schema: schema_{{var('env')}}
  tables:
  - name table_usr
    identifier: ref('table_usr')

- name: some_data_uat
  schema: schema_{{var('env')}}
  tables:
  - name table_usr
    identifier: table_usr_uat_20231122

dbt run ... env='dev' or 'uat'


Count Questions

Hi, it seems that the model only selected one entity from the knowledge graph as the answer. How does it handle count questions, e.g. "Led Zeppelin had how many band members?"

Hi,
CONVEX does not have a specific mechanism to handle count questions.
Note, that for many such questions the information is there in Wikidata.
E.g. Game of Thrones (https://www.wikidata.org/wiki/Q23572) has the number of seasons
and number of episodes.
Regards,
Philipp

Hi, CONVEX does not have a specific mechanism to handle count questions. Note, that for many such questions the information is there in Wikidata though. E.g. Game of Thrones (https://www.wikidata.org/wiki/Q23572) has the number of seasons and number of episodes.
Regards, Philipp

Thanks, Philipp. You always have a swift reply.

Hi Phillipp,
Does CONVEX only work for questions whose answers are entities? That is, CONVEX cannot handle count, comparison and "Yes or No" questions in the ConvQuestions dataset.
Best regards
Sirui


Added support for Research Tree (Continued)

https://steamcommunity.com/sharedfiles/filedetails/?id=3030499331
Changed framework used to .net4.8 due to requirement of Research Tree (Continued)
Can't say for certain its absolutely perfect without any edge cases, but it certainly is far more compatible than it is without. Which is to say not at all.

Damn I left in my post-build step - this is my first time using github pull requests, am I to assume that if it were to be integrated this can be left out?

I'd rather not reference ResearchPal since it's too trivial for reflection and as you can see it'd need us to change frameworks. Millie welcomes patches, this patch can go just fine on his side, that's how it used to be when I maintained it.
If he doesn't accept the PR... Can you see if the one from ResearchPowl applies to it? The changes required to it seem small.
https://github.com/rwmt/Multiplayer-Compatibility/blob/master/Source/Mods/ResearchPowl.cs

I get you! I can submit PR to Millie, however If I can refactor it to not use the reference and thus not need the framework change, I notice there's a way of generating the SyncWorker using reflection rather than referencing the type. So I can prob address all your concerns


AudioStreamPolyphonic ignores the AudioStreamPlayer pitch and volume properties

Tested versions
Reproducible in 4.2.1.stable (haven't had time to reproduce in other versions, sorry. If needed I can do in a couple of days)
System information
Godot v4.2.1.stable - Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1080 Ti (NVIDIA; <IP_ADDRESS>12) - Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz (8 Threads)
Issue description
While using the AnimationPlayer to change the pitch scale property of an AudioStreamPlayer, the pitch is unaltered, both in editor and at runtime.
Steps to reproduce
Play an animation that changes the pitch scale property of an AudioStreamPlayer node and plays an AudioStream res.
Minimal reproduction project (MRP)
pitch_bug_test_project.zip

See also:

https://github.com/godotengine/godot/issues/89210

Can we try to get it fixed for 4.4 cherry-picking 4.3?

If you have a solution please open a PR


Reduce the logic in the Copyright Check

Implements changes suggested in issue #166

Hi @Francososa, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

In order for us to evaluate and accept your PR, we ask that you sign a contribution license agreement. It's all electronic and will take just minutes. I promise there's no faxing. https://cla.microsoft.com.

TTYL, MSBOT;

@Francososa, Thanks for signing the contribution license agreement so quickly! Actual humans will now validate the agreement and then evaluate the PR.
Thanks, MSBOT;

Hey! Thanks for this.
There's an error in your new script which caused the copyright check to report a failure:
05:34:09 Check Copyright > Checking jenkins.check_copyright.py
05:34:09 Traceback (most recent call last):
05:34:09   File "jenkins.check_copyright.py", line 37, in <module>
05:34:09     matches = regexes[x].match(line)
05:34:09 NameError: name 'x' is not defined
05:34:09 Check Copyright > Checking jenkins.check_copyright.sh
05:34:09 Traceback (most recent call last):
05:34:09   File "jenkins.check_copyright.py", line 37, in <module>
05:34:09     matches = regexes[x].match(line)
05:34:09 NameError: name 'x' is not defined

I commented about the fix in the diff. You're still using the x index that you removed.

Looks good.
One last thing. We prefer changes to be rebased to a single commit before merging them. Do you know how to use git rebase -i and git push --force?

Sorry I don't, but I'm already looking up some resources on how to rebase changes to a single commit. I'll just learn how. If you could point me out in the right direction that would be greatly appreciated.

Rebasing is basically rewriting history. As long as you're rebasing to one commit, you might as well also rebase on top of the latest master.
I'm assuming your fork is your origin remote, you'll need to add this repo as a remote to get the latest version of master.
# first update your master branch
git checkout master
git remote add upstream https://github.com/Microsoft/ChakraCore.git
git pull upstream master
# or instead of git pull upstream master
git fetch upstream master
git merge --ff-only upstream/master

# then rebase your branch
git rebase -i master

You'll need to edit text that comes up so that the first line remains as-is and each line after that starts with s or squash, so meld them into one commit. Then edit the commit message of the resulting single commit so that it's a nice, clean commit message.
Then, as before:
git push origin [<branchname>]

Hey @dilijev! I followed every command you gave me but when I check the jenkins.check_copyright.py file it isn't updated with the commits I made here. This is what my remote looks like now:
git remote -v origin	https://github.com/Francososa/ChakraCore.git (fetch) origin	https://github.com/Francososa/ChakraCore.git (push) upstream	https://github.com/Microsoft/ChakraCore.git (fetch) upstream	https://github.com/Microsoft/ChakraCore.git (push)
and this is what it looke like when I run git rebase -i master:
`noop
Rebase 4ecb778..4ecb778 onto 4ecb778

Commands:
p, pick = use commit
r, reword = use commit, but edit the commit message
e, edit = use commit, but stop for amending
s, squash = use commit, but meld into previous commit
f, fixup = like "squash", but discard this commit's log message
x, exec = run command (the rest of the line) using shell

These lines can be re-ordered; they are executed from top to bottom.

If you remove a line here THAT COMMIT WILL BE LOST.

However, if you remove everything, the rebase will be aborted.

Note that empty commits are commented out`
My current git status is the following:
On branch master Your branch is ahead of 'origin/master' by 2 commits.   (use "git push" to publish your local commits) nothing to commit, working directory clean

Sorry, I missed a step. The rebase operation works on the branch you're currently on. Since you were on master, rebasing master on top of master does nothing. After the first set of commands, switch to your branch before doing the rebase command.

ping @Francososa

Hey @dilijev I just pushed the new rebased branch! Hope everyhting goes well :8ball:

If you delete the fork or branch this pull request would be abandoned.
You can do your work in a new branch newbranch and then when you are ready force push your change like so:
git push -f origin newbranch:fix/copyrightCheck

The one on the right of the colon is the branch name you originally pushed.

@Francososa Thanks for making this change and for bearing with me through the code review. I'll merge this in this afternoon.
Signing off.

@Francososa any word on that last change and testing? If testing is slowing you down because of an incompatible environment, just update your branch and let the checks help see.

I've been chatting with @Francososa via Gitter and working out the issues. We should see an update soon.

LGTM
@goyakin any last comments?
@Francososa I'll merge this in once tests pass.

LGTM too.

@dotnet-bot test this please
(I'm pretty sure these jobs are not in the queue.)

@dotnet-bot test this please

Hi @Francososa, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by Microsoft and real humans are currently evaluating your PR.
TTYL, MSBOT;

Sorry for the confusion. Closing and reopening the issue got these jobs queued properly.

@Francososa thanks for your patience. Your change is now checked in to master :)


Switch between grid and list view

Created a grid display template for the search results. Added an option to the search url to display results in a list or grid view.  Added a dropdown select box to the search results page to set this option.

https://github.com/dulibrarytech/digitaldu-frontend/commit/bad0422810540dde59274c05619e2aa81e904f02

f2995d4d1aa495f6d2dda02b4d0cfa6462fa95c3

c44076e9a2342093bc5528543bc67ced1fab90e4


threebot provisioning: should deploy multiple 3bot container on same machine

https://github.com/threefoldtech/jumpscaleX_threebot/tree/development/ThreeBotPackages/threebot_provisioning
Currently this actor creates a new machine for each 3bot. We would like to change that and allow to have multiple 3bot on the same machine. Each one in its own container.
This would make deployment faster and also cheaper.
Things to consider:

when deploying a 3bot, the threebot_provisioning actor needs to be able to reach the gedis interface of the 3bot. Thus some port management has to be done when installing the 3bot container so there is not port conflicts.
Some logic has to be created to ensure proper distribution of the 3bot over X machine. need to take care of the memory usage of the machine.

the deployment tool has been refactored to store the machines and info in bcdb in a more logical structure here https://github.com/threefoldtech/jumpscaleX_libs_extra/commit/28372f8b566226f91e94b1ca0de31a598b28b4f6
added features:

deploy multiple threebots on the same machine
when you create a machine you can set the maximum capacity for this machine which the number of containers that can be created there
each container has it's gedis port and ssh port stored inside and you can get both clients from it easily
you can use deployer.machines.get_availabe() which will try to get a machine or create a new one if all the machines are full

@andrewayoub great job that looks very nice


Add support for postLogoutHandler

Adds support for the postLogoutHandler.
Before Reviewing
This depends on #377 (not really "depends", but was branched from it, because it contained many changes to the /logout endpoint). So please review/merge that PR before reviewing this one.
How to verify

Checkout this branch.
Link it ($ npm link).
Create a new test application using this gist.
Link to our branch ($ npm link express-stormpath).
Start the application.
Navigate to /login.
Login as an existing user.
Navigate to /logout.
Click the logout button.
Check the console and verify that 'User logged out (account object) is present.

Fixes #218.

Looks good!  I pushed a commit with a typo fix, and a change to use /farewell as the post-logout customization example.  It felt strange to redirect the user to a secret page when they are logged out, shouldn't they be logged in to see the secrets? :)

@robertjd Haha yeah, farewell makes way more sense.

@robertjd This has been updated. Please review.

When trying to logout, I get this error (the tests fails with the same result):
/Users/timothy/Projects/stormpath/express-stormpath/lib/controllers/logout.js:33
      return account.invalidate(function () {
                     ^

TypeError: account.invalidate is not a function
    at cleanupSession (/Users/timothy/Projects/stormpath/express-stormpath/lib/controllers/logout.js:33:22)
    at /Users/timothy/Projects/stormpath/express-stormpath/lib/controllers/logout.js:54:7
    at /Users/timothy/Projects/stormpath/express-stormpath/lib/helpers/get-user.js:124:11
    at /Users/timothy/Projects/stormpath/express-stormpath/lib/helpers/expand-account.js:145:5
    at /Users/timothy/Projects/stormpath/express-stormpath/node_modules/async/lib/async.js:726:13
    at /Users/timothy/Projects/stormpath/express-stormpath/node_modules/async/lib/async.js:52:16
    at async.forEachOf.async.eachOf (/Users/timothy/Projects/stormpath/express-stormpath/node_modules/async/lib/async.js:236:30)
    at _parallel (/Users/timothy/Projects/stormpath/express-stormpath/node_modules/async/lib/async.js:717:9)
    at Object.async.parallel (/Users/timothy/Projects/stormpath/express-stormpath/node_modules/async/lib/async.js:731:9)
    at module.exports (/Users/timothy/Projects/stormpath/express-stormpath/lib/helpers/expand-account.js:34:9)

I discovered that I had to use master of stormpath-sdk-node to get this to work. I've verified that everything works as expected and also fixed a couple of typos (07255bb).

+1, can be merged after stormpath-sdk-node/release-0.18.0 is published and updated in this library.