Version bumoing to fix sem version alignment

Packages impacted by this PR
communication-chat
Issues associated with this PR
Bumping version in preparation for next release
Bumping version to fix sem version
Fixing the Changelog to include upcoming
Describe the problem that is addressed by this PR
What are the possible designs available to address the problem? If there are more than one possible design, why was the one in this PR chosen?
Are there test cases added in this PR? (If not, why?)
Provide a list of related PRs (if any)
Command used to generate this PR:**(Applicable only to SDK release request PRs)
Checklists

[x] Added impacted package name to the issue description
[x] Does this PR needs any fixes in the SDK Generator?** (If so, create an Issue in the Autorest/typescript repository and link it here)
[x] Added a changelog (if necessary)

API change check
API changes are not detected in this pull request.

/check-enforcer override

Just a changelog change, the JS tests are failing because of flaky tests in other package


translate README.md into scribble

also add a few contracts to the docs, hopefully not wrong...

;;> eyeball: 6/6, thank you!


Bug in function hashCode().

The function hashCode() always returns 0.
It should return the value of the variable 'result' instead:
From:
return 0;
To:
return result;

Fixed. Thanks!!


fix: allow welcome window to display xx number of entries now

Currently hard coded through welcome window script to 4 last change logs.

Seems to work, I dont know the uxml stuff tho so can't review that, so merge if you think its good


revoke access tokens on password change

when a user changes a password, invalidate the access tokens for the user and the associated oauth application
Note: this will only revoke the tokens for the requesting oauth application. tokens for another oauth application will not be revoked. We may want to consider revoking all tokens for security purposes (i.e. account takeover and password was reset to fix it) but this may break some workflows like subject uploading. I wasn't really sure the best way to go with this tradeoff.
Review checklist

[ ] First, the most important one: is this PR small enough that you can actually review it? Feel free to just reject a branch if the changes are hard to review due to the length of the diff.
[ ] If there are any migrations, will they the previous version of the app work correctly after they've been run (e.g. the don't remove columns still known about by ActiveRecord).
[ ] If anything changed with regards to the public API, are those changes also documented in the apiary.apib file?
[ ] Are all the changes covered by tests? Think about any possible edge cases that might be left untested.

Have we considered adding a button in PFE/an API call to explicitly revoke all tokens, rather than doing it on password change? I agree that this PR is a good start, though, so maybe that's something to add to the list for later.

We can add that as a feature at the API for sure - not in the this PR though.
This train of though actually might solve the dichotomy of which app tokens to invalidate on signing in this PR. If the user passes a flag 'invalidate all tokens' to password change we can modify the behaviour of this PR to invalidate all apps vs the requesting one.
If the client UX makes sense and we'd add it I'd be up for modifying this PR or adding it after merge / deploy of this one.

We had the initial idea of specifically asking the user if they'd like to sign back in rather than auto do it and we're going to experiment with that UX after this PR merges. I think the suggestion of asking if and which tokens to revoke great idea too, but I agree that any further iteration on this and its UX should be done in increments in follow up PRs. I think this UX would mean we would have to store information about the token, such as browser, OS, location authenticated sessions? (also mentioning @beckyrother about the UX suggestion)

From a UX perspective I'm not sure I've seen the option to sign back in after changing a password. I'd suggest revoking the token everywhere and requiring people re-sign in – that feels the most secure on the users' end.


Display source and target languages in project manager webview

When a project has been created, and the user looks at the project management view/tab, user should be fully informed about the source and target languages.
DoD

[x] User is fully informed about project overview (e.g., which language has been selected, project abbreviation, etc.)
[ ] Change abbreviation and category buttons trigger settings command like other edit buttons
[ ] Project overview lists downloaded source and target bibles

Using a data table (VSCodeDataGrid) now that populates with project overview

Now you can see downloaded source text Bibles. We've hidden target text Bibles since it's too confusing at this point to reveal those.


[DiscordCoreAPI] Update to version 2023-06-15

-Removed FFMPEG as a dependency as a result of having written our own audio demuxers.
-This issue, which was brought to my attention:
https://github.com/RealTimeChris/DiscordCoreAPI/issues/32
-Also modified the CMakeLists.txt file et al to support statically building the library.

[x] Changes comply with the maintainer guide
[x] SHA512s are updated for each updated download
[x] The "supports" clause reflects platforms that may be fixed by this new version
[x] Any fixed CI baseline entries are removed from that file.
[x] Any patches that are no longer applied are deleted from the port's directory.
[x] The version database is fixed by rerunning ./vcpkg x-add-version --all and committing the result.
[x] Only one version is added to each modified port's versions file.

Note: I will be converting your PR to draft status. The above suggested changes are only recommendations. If you are willing to adopt them, please click "ready for review" after making the modifications. If you do not wish to make any changes, please click "ready for review" directly. That way, I can be aware that you've responded since you can't modify the tags.

Usage test pass with following triplets:
x86-windows
x64-windows
x64-windows-static

Usage test pass with following triplets:
x86-windows
x64-windows
x64-windows-static

It passed with x86-windows? Interesting!

The test has passed on the local version 20230603.01.

Usage test pass with following triplets:
x64-windows
x64-windows-static

No, It's not support x86-windows. https://github.com/microsoft/vcpkg/blob/80ecf32496c3806c5bb79bb80f029f83d058930e/ports/jsonifier/vcpkg.json#L8

Usage test pass with following triplets:
x64-windows
x64-windows-static

No, It's not support x86-windows.
https://github.com/microsoft/vcpkg/blob/80ecf32496c3806c5bb79bb80f029f83d058930e/ports/jsonifier/vcpkg.json#L8

That's what I thought! Thanks!


Try Ladle (over Storybook) in react-ui with 2 components

Performance and maintenance with Storybook isn't great. This PR is a starting point to discuss a potential move to e.g. Ladle: https://ladle.dev
Please try it to feel the difference :)
pnpm -F @kadena/react-ui run storybook       # or..
pnpm storybook                               # from packages/libs/react-ui

(I didn't rename the scripts yet so this might look odd indeed.)
Use the built-in dark mode and the look & feel already comes pretty close to Storybook.
Most add-ons we're using are there and there's a solution for visual regression testing too.
The migration shouldn't be too cumbersome, I guess a day or two?

@update snapshots

@snapshots

/snapshots

/shapshots

/snapshots


onScroll and some other props of ScrollView are not available

Feature request
As the doc suggests Tabs.ScrollView should function like a normal ScrollView, but currently there are some props missing.
Current behavior
onScroll is missing and onScrollBeginDrag, onScrollAnimationEnd are not functioning when there is nested FlatList/ScrollView within Tabs.ScrollView/Tabs.FlatList
Screenshots (if applicable)
Repro code snippet:
`import React from "react";
import { View, StyleSheet, FlatList, Text } from "react-native";
import { Tabs } from "react-native-collapsible-tab-view";
const HEADER_HEIGHT = 250;
const Header = () => {
return ;
};
const App: React.FC = () => {
return (
<Tabs.Container
renderHeader={Header}
headerHeight={HEADER_HEIGHT} // optional
>
<Tabs.Tab name="B">
<Tabs.ScrollView
accessibilityComponentType="MyApp"
accessibilityTraits="scrollable"
onScrollBeginDrag={() => console.log("onScrollBeginDrag")}
onScrollAnimationEnd={() => console.log("onScrollAnimationEnd")}
onScroll={() => console.log("onScroll not exposed")}
>
<FlatList
data={[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]}
onScroll={() => console.log("onScroll FlatList")}
keyExtractor={(item) => item.toString()}
renderItem={({ item }) => (
<View
style={{
flex: 1,
height: 120,
borderWidth: 1,
marginVertical: 5,
}}
>
{item}

)}
/>
<View style={[styles.box, styles.boxA]} />
<View style={[styles.box, styles.boxB]} />
</Tabs.ScrollView>
</Tabs.Tab>
</Tabs.Container>
);
};
const styles = StyleSheet.create({
box: {
height: 250,
width: "100%",
},
boxA: {
backgroundColor: "white",
},
boxB: {
backgroundColor: "#D8D8D8",
},
header: {
height: HEADER_HEIGHT,
width: "100%",
backgroundColor: "#2196f3",
},
});
export default App;
`

I have the same problem, did you solve it?

Well you can't just overwrite onScroll here. U need to use the provided hooks and methods if you want to trigger events on scroll.
https://github.com/PedroBern/react-native-collapsible-tab-view/blob/main/src/ScrollView.tsx#L115
As you can see, onScroll is set AFTER ...rest, so it will overwrite your onScroll method.
These event's are needed to make all the collapsible magic happen here.

Well you can't just overwrite onScroll here. U need to use the provided hooks and methods if you want to trigger events on scroll.
https://github.com/PedroBern/react-native-collapsible-tab-view/blob/main/src/ScrollView.tsx#L115 As you can see, onScroll is set AFTER ...rest, so it will overwrite your onScroll method.
These event's are needed to make all the collapsible magic happen here.

I need to monitor which Hooks scrollY should use in real time


fix: sqlite export

Why
The change in https://github.com/uktrade/tamato/pull/430 resulted in what seems to be multiple SQLite exports happening at the same time on the same S3VFS database, which caused corruption. The export is triggered every 30 minutes, and there were assumptions that each export would take < 30 minutes and/or multiple export tasks cannot run at the same time. These seemed incorrect.
What
This fixes the corruption issue by aborting the SQLite export if at least one block has been written to S3, which happens very soon after the start of the export, rather than aborting if the serialized SQLite file has been written, which happens right at the end of the export.
The consequence of this is that exports that fail after the 1st block is written are not automatically recovered from. However, once new data is pushed using another filename, that export will be attempted automatically. This apparently happens frequently.

Codecov Report

Merging #431 (0d16941) into master (9f357f7) will increase coverage by 0.02%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #431      +/-   ##
==========================================
+ Coverage   91.14%   91.16%   +0.02%
==========================================
  Files         277      277
  Lines       16890    16884       -6
  Branches     1381     1380       -1
==========================================
- Hits        15394    15392       -2
+ Misses       1250     1247       -3
+ Partials      246      245       -1

Impacted Files
Coverage Δ

exporter/sqlite/tasks.py
93.33% <ø> (+9.12%)
:arrow_up:

exporter/tests/test_sqlite.py
96.47% <ø> (ø)

exporter/storages.py
100.00% <100.00%> (ø)

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 9f357f7...0d16941. Read the comment docs.


LocalStorage browser support

Greetings, this a great plugin, thanks for all of the hard work.  This is more of a question, how does bootstarptour handle a browser that does not support localstorage?  Does it start every time the page is loaded?

The goal is to not have the tour every time the page loads for browsers that do not support localstorage.  After thinking about this, it looks like I can do tour.init(), and check for local storage support:
    if (typeof (Storage) != "undefined") {
        tour.start();
    }

Any thoughts?

You can create your own storage object with properties setItem, getItem, deleteItem and handle storage the way that suits you.


[Docs-UI.HandleBegin] Possible bug in Bounds, Sizes Correctly but Return false on RayActive

In an interesting problem, I was calculating sizing from changes in scale using X,Y,Z directly. It seems that there is the possibility to calculate in a way where one or more of the values is negative, e.g. x=-1.3f. A bound must be positive and it seems to be pointless to have a negative bound.
Interestingly, SK Bound will accept a value such as in this statement: var bounds = new Bounds(new Vec3(-1.78f, 1.0f, .05f)); For a bounds this is invalid. However, SK Bounds does in fact treat it as valid and seems to use the ABS function to make the values positive. But when the bounds are applied to the hierarchy the bounds are correctly drawn but never returns a true for a RayActive. The hand interactions seem normal in the sense that the bounding box is interactive and the proximity indications work. However, it is not grabbable or moveable.
Create a cube mesh, and create an invalid bounds as shown above. Of course the workaround is to test the values. However that is just extra cpu burden in the update method.
// Draw the grabbable bounding area

bool boundsRayActive = UI.HandleBegin("vidPlayer", ref vidSpritePose, bounds, true, UIMove.Exact);  // adds a hierarchy with model
if (boundsRayActive)
{
	boundsMesh.Draw(boundsMatActive, Matrix.TS(Sys.vecZero, scale));
}
else
{
	boundsMesh.Draw(boundsMatInactive, Matrix.TS(Sys.vecZero, scale));
}

Thanks, yeah! I'll have to think about this a bit, I think you'll find this sort of thing a lot in SK's math. Math like this does tend to need to be fast, so I have a habit of doing less guards and checks for the sake of speed.
Reflecting on that, it's probably a habit I've carried from game development, and sacrificing speed for safety is probably more important for app developers. In this case, I'd probably want to clamp the values to a minimum of zero, throughout all the operations that can be performed on Bounds.


Karate is not able to parse xpath  with single quote, My id has a single quote  as shown<EMAIL_ADDRESS>I'm getting XPath expression not  valid error. I used<EMAIL_ADDRESS>

IMPORTANT: If you have a general question please use Stack Overflow instead where Karate has a dedicated "tag": https://stackoverflow.com/questions/tagged/karate
If you are sure you have found a bug, please make sure you follow the instructions here: https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue

@Vineethreddi please use stack overflow (or see links above)


i have got The syntax of the command is incorrect.

D:\out\シスター>translate-rpgmaker-plugin [options]  when i use this code i got The syntax of the command is incorrect.

It should look like this. Perhaps something is wrong. Can you show me a screenshot like this?


DOCUMENTION [Issues #46 ] Cheak this file

Description
Please include a summary of the change and which issue is fixed. Also include relevant motivation and context.

Fixes #(issue number)

Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update
[ ] Tests update

Checklist

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] My changes generate no new warnings
[ ] New and existing unit tests pass locally with my changes
[ ] I have maintained a clean commit history by using the necessary Git commands
[ ] I have checked that my code does not cause any merge conflicts

Screenshots (if applicable)
Add screenshots to help explain the changes (if necessary).

Let's count the infringements in this pull requests here, shall we?
Infringement 1: A blatant contravention of Contribution Guidelines—specifically, the clause prohibiting documentation PRs, save for explicit requisition by maintainers.
Infringement 2: A transgression of the guideline stipulating that no PRs are to be submitted sans prior assignment to the corresponding issue.
Infringement 3: Failure to adhere to the mandatory pull request template, submitting it devoid of the requisite format.
Infringement 4: A breach of the Code of Conduct by defiantly disregarding maintainers' explicit instructions and proceeding with a prohibited PR.
Infringement 5: A further violation of the Code of Conduct, displaying flagrant disregard for open-source protocols by working on a pre-assigned issue.
Cumulatively, these five transgressions necessitate swift repercussions. Henceforth, your contributions to this repository are interdicted, barring express authorization from @Kota-Karthik. Any future submissions will be summarily dismissed until an apology is tendered and compliance with essential documentation is demonstrably assured.


Set up Documentation to Guide Users through Error Handling / Debugging (Troubleshooting)

Set up some documentation which provides a lookup from common error messages to guidance on what they mean and how they can generally be solved.

[x] We should have one page per error type. (<20 different error types).

[x] Put some limited description of what the error means and generic resolution steps (in plain english).

[ ] Set up some short-urls for these documents so we don't fill the terminal up with too much useless information that makes the user's eyes glaze over. (todo: We need to figure out whether which URL shortners we're allowed to use - I think there's a gov.uk URL shortner somewhere?)

We should not be using common third-party URL shortners; see here for an explaination. Speak to @robons to make use of the http://purl.org/csvcubed domain he's registered as an initial solution for this.

[x] Set up a github issue OR confluence page where our internal users can provide reports of stack traces / validation errors when they happen so we can keep track of the frequency at which different errors occur for users.

I've added a google sheet to help keep track of validation errors people find when using csvcubed. It can be found here.


Use new CLI to generate diagnostics bundle

High-level description
Use new CLI command to fetch bundle after tests
Corresponding DC/OS tickets (required)

DCOS_OSS-5478 Use new CLI command to fetch bundle after tests

Related tickets (optional)

DCOS-ID JIRA title / short description.

Checklist for component/package updates:
If you are changing components or packages in DC/OS (e.g. you are bumping the sha or ref of anything underneath packages), then in addition to the above please also include:

[ ] Change log from the last version integrated (this should be a link to commits for easy verification and review): example
[ ] Included a test which will fail if code is reverted but test is not. If there is no test please explain.
[ ] Test Results: [link to CI job test results for component]
[ ] Code Coverage (if available): [link to code coverage report]

@mesosphere-mergebot request-review @drewvanstone @br-lewis @makkes @bamarni @rgo3

@mesosphere-mergebot changelog-not-required test only change

@mesosphere-mergebot request-review @drewvanstone @br-lewis @makkes @bamarni @rgo3

@mesosphere-mergebot label Ready For Review

@mesosphere-mergebot request-review @drewvanstone @br-lewis @makkes @bamarni @rgo3


Update maxout.py

Specify the final number of features in the maxout axis

sorry, i do not know what is rebase

Rebase means to put your changes on top of the current tip of the branch.
Probably something like that:
git remote add origin git@github.com:cartonwang/tensorflow.git
git remote add tfhead https://github.com/tensorflow/tensorflow.git
git fetch tfhead && git rebase tfhead/master
git push -u origin master


fmt: run doesn't panic, but debug panics when using embed object

Go version
all go versions up to 1.21.6
Output of go env in your module/workspace:
GOARCH='amd64'
GOBIN='/Users/foo/gobin'
GOCACHE='/Users/foo/Library/Caches/go-build'
GOENV='/Users/foo/Library/Application Support/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='darwin'
GOINSECURE=''
GOMODCACHE='/Users/foo/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='darwin'
GOPATH='/Users/foo/go'
GOPRIVATE=''
GOPROXY=''
GOROOT='/Users/foo/go/go1.21.6'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/Users/foo/go/go1.21.6/pkg/tool/darwin_amd64'
GOVCS=''
GOVERSION='go1.21.6'
GOAMD64='v1'
GOMOD='/Users/foo/git/debug/go.mod'
GOWORK=''
GOGCCFLAGS='-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -ffile-prefix-map=/var/folders/dp/kz0kc_y54pd7v_g1t2wydhzr0000gq/T/go-build1338974926=/tmp/go-build -gno-record-gcc-switches -fno-common'

What did you do?
i run the following test case, and everything runs well. but when i debug, it panics.
func TestPrintDebugPanic(t *testing.T) {
	tt := (*Foo)(nil)
	fmt.Printf("%v", tt)
}

type Foo struct {
	Bar
}

type Bar struct{}

func (Bar) String() string {
	return "bar"
}

What did you see happen?
the UT can execute in Running mode, but panics in debug mode.
the if check on nil doesn't return true as it is a typed interface nil rather than the raw nil.
	if arg == nil { // <<< return false
		switch verb {
		case 'T', 'v':
			p.fmt.padString(nilAngleString)
		default:
			p.badVerb(verb)
		}
		return
	}

...

		switch verb {
		case 'v', 's', 'x', 'X', 'q':
			// Is it an error or Stringer?
			// The duplication in the bodies is necessary:
			// setting handled and deferring catchPanic
			// must happen before calling the method.
			switch v := p.arg.(type) {
			case error:
				handled = true
				defer p.catchPanic(p.arg, verb, "Error")
				p.fmtString(v.Error(), verb)
				return

			case Stringer:
				handled = true
				defer p.catchPanic(p.arg, verb, "String")
				p.fmtString(v.String(), verb) // <<<<< calls here because the embed Bar implmeent the String()string interface. v is nil
				return
			}
		}

What did you expect to see?
debug should run well and also print as running:
<nil>

what's debug mode?

Could you explain what are "Running mode" and "debug mode"? The Go toolchain and standard library don't have those mode.
If you're running in an IDE, it could be that the code panics and recovers, but the IDE's debugger captures the first panic and pauses the execution. If that is the case, you should be able to continue the execution and let it recover.

As it turns out (https://github.com/go-delve/delve/issues/3651) this is caused by a limitation of old versions of debugserver (https://github.com/go-delve/delve/issues/852)

@seankhliao

what's debug mode?

debug with delve.

@cherrymui

Could you explain what are "Running mode" and "debug mode"? The Go toolchain and standard library don't have those mode.

it's the debug with delve.

@aarzilli

As it turns out (https://github.com/go-delve/delve/issues/3651) this is caused by a limitation of old versions of debugserver (https://github.com/go-delve/delve/issues/852)

yes. that's correct. will update the xcode and have a try.

thank you all for the review.


storage: Always split the pre-ingested DTFile

Signed-off-by: Wish<EMAIL_ADDRESS>What problem does this PR solve?
Issue Number: ref #5237
What is changed and how it works?
Consider that we received a 2GB-sized snapshot (which may happen when dynamic region is enabled).

Improved: In ApplySnapshot, we use ingestBySplit. In this case, 2GB sized snapshot becomes a 2GB sized segment immediately, which causes segment split again. If we pre-split the DTFile, then the segment will be stable and don't need further operations.

No change: In IngestSST, we use ingestByColumnFile. In this case, 2GB sized snapshots are all written to the segment delta layer. Even if we split into multiple DTFiles, they are still all written to the segment delta layer (for now). So there will be no changes.

Check List
Tests

[ ] Unit test
[x] Integration test - There are e2e tests to cover the big region scenario.
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Documentation

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Changes MySQL compatibility

Release note

None

/run-unit-test
/run-integration-test

/merge

/run-integration-test

/rebuild

/run-integration-test


Issues running the cmdlet

Hi, can you advise if there is any special permissions/setup required (on the database or app server) for running this cmdlet? I'm having problems getting it to run at all (step 4). Error attached.
I've confirmed the paths in the command (client path, output path) are correct.
I have local admin access on the machine i'm running the script.
PowerShell is run as administrator.
I've confirmed the database server and database name are correct.
I've moved the client folder to a new location to reduce the length of the path name just in case.
I've confirmed that my DEV client and license allow me to export objects to txt file without issue.

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

ID: 00ecb53f-3816-6c06-7685-97060cec6cff
Version Independent ID: b30de908-8377-e4e6-96e4-eb1c5a7ed9b9
Content: Making Pages and Reports in the MenuSuite Searchable After Upgrade - Business Central
Content Source: dev-itpro/upgrade/upgrade-pages-report-for-search.md
Service: dynamics365-business-central
GitHub Login: @SusanneWindfeldPedersen
Microsoft Alias: solsen

Hello,
The permissions and setup look correct. Based on the errors, the only thing I can think of is that it has to do with the RoleTailoredClientFolder. The script uses the finsql.exe, which is the Developer Environment (CSIDE). Does the RTC folder include the finsql.exe?

hi @jswymer , thanks for the reply.
Yes the DEV client executable finsql.exe is in that folder, I've run that client directly from that folder myself to make sure it works and it does, i've also tried manually exporting objects to txt file and it works fine also. The version of BC is 14.0.37587 which is v14 CU9 I believe.
Thanks.

Hello,
It may have to do with User Access Control settings, but not sure..

Hello,
Thanks for the info! I'll pass this on to the development team to see if they can provide some insight.

Hello, we've have logged a  internal defect to investigate and track this issue. We'll close this GitHub issue for now. Thanks for the feedback!


✨ [clean up]: add more ESLint rules and clean up the project

Current ESLint rules don't catch unused or undefined variables.
So, to allow that we can add eslint:recommended in .eslinrc file.
Tasks:

Add eslint:recommended in .eslinrc file
Run yarn lint and check for eslint error
Clean up eslint error in the project

I can take this, if you don't mind

I can take this, if you don't mind

Assigned

Just pushed up some changes, let me know if anything needs amending :)


Add "How to Build a Connector?" chapter from the Starter Kit to Github.

Check the steps on the Starter Kit and import them to Github. Find the proper place where "building a connector" might be helpful for the readers (e.g. step 3) and add it accordingly.

Two funnels:

Imlementing your connector (by using your tech)
Use/deploy one of the connectors that is already there.


Failed to update channel monitor funding txo on DLC channel update

I've failed to close a position on 7ac6e28. At first glance, it doesn't like a reconnect issue. Here are the relevant logs from the 10101 test app:
| 2023-05-10 10:57:35.423 | LogLevel.INFO | Accepting DLC channel collaborative settlement channel_id: 266224002cffce70002ed7a38c43dd9de5bee39eaf8868a58c2f5035b000199d
| 2023-05-10 10:57:35.425 | LogLevel.ERROR | lightning::chain::chainmonitor: Failed to update channel monitor funding txo: no such monitor registered
| 2023-05-10 10:57:35.427 | LogLevel.ERROR | Failed to process message: Failed to accept DLC channel close offer for channel 266224002cffce70002ed7a38c43dd9de5bee39eaf8868a58c2f5035b000199d: Invalid parameters were provided: Misuse error: Could not update channel funding transaction. from: 03507b924dae6595cfb78492489978127c5f1e3877848564de2015cd6d41375802,kind: SubChannelCloseOffer

Could possibly be related to #610, because the error message is similar. But it's slightly different and a completely different error path.

Looks like this error is also happening while opening a position. I just received these logs from one of our users on the test app version.
Build 1.0.17 (1126)
| 2023-05-11 17:40:18.606 | LogLevel.INFO | Processing message from: 03507b924dae6595cfb78492489978127c5f1e3877848564de2015cd6d41375802,kind: SubChannelOffer
| 2023-05-11 17:40:18.705 | LogLevel.INFO | Accepting DLC channel offer channel_id: 8905e0f1588dab8aab650d82935f68a5dd8df7d2b766118391f4db5bea71f0a1
| 2023-05-11 17:40:18.714 | LogLevel.ERROR | lightning::chain::chainmonitor: Failed to update channel monitor funding txo: no such monitor registered
| 2023-05-11 17:40:18.716 | LogLevel.ERROR | Failed to process message: Failed to accept DLC channel offer for channel 8905e0f1588dab8aab650d82935f68a5dd8df7d2b766118391f4db5bea71f0a1: Invalid parameters were provided: Misuse error: Could not update channel funding transaction. from: 03507b924dae6595cfb78492489978127c5f1e3877848564de2015cd6d41375802,kind: SubChannelOffer

Removing my assignment since I couldn't reproduce it consistently so it's hard to track the problem. I've introduced https://github.com/get10101/10101/pull/639 so that we can have a bit more context if it happens again.


Add mouse events, simplify input event structure

@blacktm Does this allow catching scrolling events?

@blacktm What also came to my mind is, can we also add on_mouse_move event? This would make it very nice and performant to implement things like Button#on_hover actions.

It doesn't, but I see there's an SDL_MouseWheelEvent, which I'm sure also captures trackpad scrolling. I'll give it a spin — ha!
And yes, there's also an SDL_MouseMotionEvent where we can get the x, y mouse position for the event. Would the relative x and y also be helpful? It also has button state in there, but I can't think of a scenario when those would be useful.

I'm not sure how I should understand relative x and y. Is that those same values that I can get by get(:mouse_x) and get(:mouse_y) ? This is what I'm thinking about.
And if you want me to review, please don't hold the merge, I can't be any helpful with c code, only when we get to ruby part I can do a real sit on this.

delta_x and delta_y are better names, indeed. So on mouse motion even there would be both deltas and current positions?

Yes, I can get mouse move deltas both natively and on the web. Not exactly sure the use case for using them, but easy enough to include them.

I think this is as good as it's going to get. Merging!


fix(gestures): custom recognizers should not inherit twice.

HammerJS does not allow custom recognizers to use a default recognizer twice globally.
This means that we can't create a drag and slide recognizer, which depends for all on one default recognizers.

As discussed with @kara this is another approach for fixing that gesture issues.

@DevVersion  A few notes:

Swipe still appears to be broken. Can you fix?
Can you add slide to the gestures demo test page?
Rebase now needed. Thanks!

@kara Done!

Thanks for updating!  LGTM


Allow override core operators

As of right now operator overrides are disabled. This means that one cannot change the behaviour of operators like == or any others.
While the use cases might be very marginal I do have a use case for this: I need to make == operator less strict on the types of the arguments. e.g.
//  default behavior
1 == "1" // false

// desired behavior
1 == "1" // true

Problem is that by design everything can be extended or overridden but the unary & binary operators.
My idea is to add a flag to enable the operator overrides. So users can override core operators if they want to. i.e.
@Override
  public List<BinaryOperator> getBinaryOperators() {
    List<BinaryOperator> operators = new ArrayList<>();

    operators.add(new BinaryOperatorImpl("==", 30, CustomEqualsExpression.class, Associativity.LEFT));

    return operators;
  }

where CustomEqualsExpression.class would be the override for the == core operator.

IMHO, Pebble is a Java library and core operators should stick to Java semantics. Why not convert to String or Integer, or compare to correct value or write your own custom extension ?

Our application contains a live HTML editor which uses pebble behind the scenes to provide templating functionality.
we have some monetary amounts which are already localized (hence the string type) and we'd really want to enable our users to do stuff like {% if amount > 10 %}.
for us it's not acceptable to expect our users to know which placeholders contain localized amounts (i.e. strings) and which contain actual numbers (i.e. index, counts, etc)
I know it's a fairly edgy use case, but having this will really improve our users experience.

One of core feature if the extensibility of the language. I think it's a good addition to pebble. I'll take a look at the PR later this week.


Initial docs set up

Initial mkdocs has been set up.
Next step is to configure GitHub pages

I need to fix these warnings:
=============================== warnings summary ===============================
.tox/py39/lib/python3.9/site-packages/marshmallow/fields.py:755: 12 warnings
  /home/runner/work/starfleet/starfleet/.tox/py39/lib/python3.9/site-packages/marshmallow/fields.py:755: RemovedInMarshmallow4Warning: The 'default' argument to fields is deprecated. Use 'dump_default' instead.
    super().__init__(**kwargs)

.tox/py39/lib/python3.9/site-packages/marshmallow/fields.py:1181
.tox/py39/lib/python3.9/site-packages/marshmallow/fields.py:1181
.tox/py39/lib/python3.9/site-packages/marshmallow/fields.py:1181
.tox/py39/lib/python3.9/site-packages/marshmallow/fields.py:1181
.tox/py39/lib/python3.9/site-packages/marshmallow/fields.py:1181
.tox/py39/lib/python3.9/site-packages/marshmallow/fields.py:1181
  /home/runner/work/starfleet/starfleet/.tox/py39/lib/python3.9/site-packages/marshmallow/fields.py:1181: RemovedInMarshmallow4Warning: The 'default' argument to fields is deprecated. Use 'dump_default' instead.
    super().__init__(**kwargs)

.tox/py39/lib/python3.9/site-packages/marshmallow/fields.py:573
.tox/py39/lib/python3.9/site-packages/marshmallow/fields.py:573
.tox/py39/lib/python3.9/site-packages/marshmallow/fields.py:573
  /home/runner/work/starfleet/starfleet/.tox/py39/lib/python3.9/site-packages/marshmallow/fields.py:573: RemovedInMarshmallow4Warning: The 'default' argument to fields is deprecated. Use 'dump_default' instead.
    super().__init__(default=default, dump_default=dump_default, **kwargs)

src/starfleet/worker_ships/base_payload_schemas.py:116
src/starfleet/worker_ships/base_payload_schemas.py:116
src/starfleet/worker_ships/base_payload_schemas.py:116
  /home/runner/work/starfleet/starfleet/src/starfleet/worker_ships/base_payload_schemas.py:116: RemovedInMarshmallow4Warning: The 'default' argument to fields is deprecated. Use 'dump_default' instead.
    starbase_assigned_account = fields.String(data_key="StarbaseAssignedAccount", default=None)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html

Docs have been published in the gh-docs branch under the docs/ path.
Instructions for now is to run:
source venv/bin/activate
cd mkdocs
mkdocs build
mv site ../docs
...
# Do the git commit work and push to gh-docs


Issues with new lines

Thank you very much for this great tool. I noticed an issue with new lines handling
In markdown new lines must be specified with 2 (or more) consecutive lines. so one \n in quill should be transformed into two \n. and 1 \n in markdown should be ignored and more than that should result in only a single \n.
deltaToMarkdown
[{"insert":"line 1line 2\\nline 3\\n"}]

expected:
line 1line 2

line3

actual:
line 1line 2
line 3

markdownToDelta
line 1
line 2

line 3

expected:
[{"insert":"line 1line 2\\nline3\\n"}]

actual:
[{"insert":"line 1\\nline 2\\nline 3\\n"}]

@TarekkMA  this might help

// Converts single line break from "\n" to "  \n"
// Ignores double or more line breaks
final regex = RegExp(r'(?<!\n)\n(?!\n)');
final formattedMarkdown = markdown.replaceAll(regex, '  \n');


MAPQ of unmapped reads

Hi @milkschen et al.,
I received the following error when using picard MarkDuplicates with the BAM files I lifted using leviosam2:
ERROR::INVALID_MAPPING_QUALITY:Record 1, Read name ERR1938683.3, MAPQ should be 0 for unmapped read.
Above is an example error message. I ran leviosam2 for around 20 different BAM files and the error is the same for all of them (except that the read name and the record number are different).
I checked the the corresponding record in the BAM file. Here is what I have for that particular record:
Before leviosam2:
ERR1938683.3    99      chrI    1       60      29S121M =       37      183     CACCACACCCACACACCCACACACCACACCCACACCACACCCACACACCCACACACCACACCACACACCACACCACACCCCCACACACACATCCTAACACTACCCTAACACAGCCCTAATCTAACCCTCCCCAACCTGTCTCTCAACTTA BBB@BBBBBBBBGGGGFGGGGGEGGD222EEAECE2FGA1AEFGAE?FEGGCEAEGGGEEGDHAEEEE1GHHGGH11EE?/>EE/EEA/</BFCB2222FB??FC22GH2F/CA<C2<0?F1?1G0??///<0.<<001>1F=<G0<=0D NM:i:3  MD:Z:51A47G0G20 MC:Z:3S147M     AS:i:106        XS:i:51 RG:Z:ERR1938683
After leviosam2
ERR1938683.3    77      *       0       60      29S121M *       0       0       CACCACACCCACACACCCACACACCACACCCACACCACACCCACACACCCACACACCACACCACACACCACACCACACCCCCACACACACATCCTAACACTACCCTAACACAGCCCTAATCTAACCCTCCCCAACCTGTCTCTCAACTTA BBB@BBBBBBBBGGGGFGGGGGEGGD222EEAECE2FGA1AEFGAE?FEGGCEAEGGGEEGDHAEEEE1GHHGGH11EE?/>EE/EEA/</BFCB2222FB??FC22GH2F/CA<C2<0?F1?1G0??///<0.<<001>1F=<G0<=0D MC:Z:3S147M     AS:i:106        XS:i:51 RG:Z:ERR1938683 LO:Z:UM_UM
Clearly this particular read could not be lifted after leviosam2. The issue is the old mapping quality is still there (and the CIGAR string), which is why MarkDuplicates is complaining. I can easily filter out the unmapped reads from my lifted BAM files to eliminate this issue, but I thought you may want to check this in case you consider this as an unwanted behavior for your tool.
Below is the script I use for running leviosam2. The CHAIN files are downloaded from UCSC.
PREFIX=$1
CHAIN=$2
BAM=$3
FAI=$4
THREAD=$5

leviosam2 index -c "${CHAIN}" -p "${PREFIX}" -F "${FAI}"
leviosam2 lift -C "${PREFIX}".clft -a "${BAM}" -p "${PREFIX}" -O bam -t ${THREAD}

Thank you for reporting this issue comprehensively! This is a helpful finding.
I intentionally kept the non-flag fields and the tags to retain more information wrt the source alignments. Given the commonness of picard MarkDuplicates, I think it's reasonable for me to add a flag to clean the source reference info.
Before I update the software, I'd recommend you filter the unmapped reads so that your pipeline won't break.
Thank you 😀

MAPQ for unliftable reads are set to 0 by default in v0.4.0.


chore: CI files update

Fix chart publish
Update Dockerfile
Export binaries from docker images
Create release with assets from workflow
Remove circleci config

@h44z,
Could you disable CircleCI integration completely or at least for tags and master branch?
With this change, workflow will create release on GitHub and upload binaries into.

should be removed I guess


API Stability

Hello! I've started using Ohm to parse simple URIs and I'm loving it, but after glancing at the contribution history it looks like development on Ohm may be ramping down. Are there plans to release version 1.0.0, and/or continue development on this project? Everything looks great, but I wanted to check in and make sure this project wasn't slowing down. Are there any resources where I could get updates on development?

Also curious about whether or not Ohm is still being actively developed/maintained. HARC is listed as a past project here.
Not sure if that means that HARC is no longer operating or just no longer funded through YC.

cc: @pdubroy @alexwarth, specifically

Thanks for calling us out, @christianbundy. I guess we needed the extra push! :)
Thanks also for your kind words. It's always nice when we get feedback on Ohm, both critical and otherwise, and we really appreciate it.
While we haven't made any changes lately, I'm happy to report that I have been using Ohm quite a lot and I'm still very happy with it. That's not to say that I think the API is as good as it could be -- there are still some parts that bug me, e.g., how confusing optionals and iteration nodes can be to new users -- but overall I'm pretty happy with it.
I agree that this is a good time to start thinking about v1.0. I know that @pdubroy has been working on a hand-translation / rewrite of the Ohm implementation in TypeScript. Thinking about the types of various bits of the API should be interesting, and give us some insights that may turn into improvements.
Let me and Pat have a chat about this and we'll get back to you soon.

I appreciate the status update, thanks!


Fix #192, Adds check commit message job in format check

Checklist (Please check before submitting)

[x] I reviewed the Contributing Guide.
[x] I signed and emailed the appropriate Contributor License Agreement to<EMAIL_ADDRESS>and copied<EMAIL_ADDRESS>
Describe the contribution
A clear and concise description of what the contribution is.

Fixes #192

Testing performed
Tested on fork: https://github.com/chillfig/cFS/runs/6201393590?check_suite_focus=true
Expected behavior changes
Commit messages not following any of the below conventions will fail the format-check.yml

Fix #XYZ, DESCRIPTION
HotFix #XYZ, DESCRIPTION
Partial #XYZ, DESCRIPTION
Merge pull request #XYZ DESCRIPTION
IC: DESCRIPTION

System(s) tested on
Ubuntu 18.04
Additional context
The regex for DESCRIPTION is defined as a string of 1 or more alphanumeric characters.
The regex for XYZ is defined as a string of 1 or more numeric characters.
Code contributions
The cFS repository is provided to bundle the cFS Framework.  It is utilized for bundling submodules, continuous integration testing, and version management and does not contain any software.  Code contributions should be directed to the appropriate submodule.
Contributor Info - All information REQUIRED for consideration of pull request
Justin Figueroa, ASRC Federal

CCB:2022-05-04, APPROVED with CHANGES

Spin off into its own reusable workflow (triggered on workflow_call)
Consider replacing "partial" with "part"? Do we have a "better" short word for that?

@astrogeco are you able to separate it into it's own job that only runs on pull requests even when triggered from a workflow call?  That would be enough to separate it from the code format check (different job) and avoid nuisance failures (only on pull request) for me.  Although if there's plans to add more checking to this workflow a name update may help clarify things (not just checking code whitespace formatting anymore).

@astrogeco are you able to separate it into it's own job that only runs on pull requests even when triggered from a workflow call? That would be enough to separate it from the code format check (different job) and avoid nuisance failures (only on pull request) for me. Although if there's plans to add more checking to this workflow a name update may help clarify things (not just checking code whitespace formatting anymore).

Interesting. Yes, the "Check commit message" step can be changed into its own job in format-check.yml with the addition of if: github.event_name == 'pull_request'. According to https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idif, that addition should keep the check commit message job to only running on pull requests.


Add Jupyter widget

Adding a Jupyter widget for rendering deck.gl in a Python environment, building on #3013.
Background
See #2929.
Change List

Adds JS module to support a Jupyter notebook extension
Modifies pydeck Python library to support a Jupyter notebook extension

Coverage decreased (-0.6%) to 61.868% when pulling a605b0247d873e09ff165901b668e88aa918d68c on ajd/python-widget into 276576c2e36885d967f56126b05390981f8b7802 on master.


⚠ Bofrost.es has degraded performance

In 923c4af, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1505 ms

Resolved: Bofrost.es performance has improved in ef70e46 after 18 minutes.


Add synonyms, 2ndary IDs, XREFs to Reagent

The Construct class needs synonyms, secondary IDs and cross references. These have now been added to the Reagent and ReagentDTO superclasses to accommodate the Construct and Antibody classes (FlyBase currently submits these properties for Construct submissions to the FMS).

FWIW, I'm throwing in a sample set of entries from the current FB CONSTRUCT submission to the FMS:
{   "data": [     {       "crossReferences": [         {           "id": "FB:FBtp0000078",           "pages": [             "construct"           ]         }       ],       "name": "P{hsneo}",       "primaryId": "FB:FBtp0000078",       "synonyms": [         "P{ori ampR neoR[Hsp70Ba.PS]=hsneo}",         "P{ori ampR neoRHsp70Ba.PS=hsneo}",         "P{hsneo}",         "P{ori ampR neoR[Hsp70Bb.PS]=hsneo}",         "P{ori ampR neoRHsp70Bb.PS=hsneo}",         "pUChsneo transposon"       ]     },     {       "constructComponents": [         {           "componentID": "FB:FBgn0001077",           "componentRelation": "expresses",           "componentSymbol": "ftz"         },         {           "componentID": "FB:FBgn0286924",           "componentRelation": "is_regulated_by",           "componentSymbol": "Hsp70"         }       ],       "crossReferences": [         {           "id": "FB:FBtp0000233",           "pages": [             "construct"           ]         }       ],       "name": "P{hsp70-ftz}",       "primaryId": "FB:FBtp0000233",       "synonyms": [         "P{ftz[hs.PS] Adh[+t3.2]=hsp70-ftz}",         "P{ftzhs.PS Adh+t3.2=hsp70-ftz}",         "HS-Dm-ftz",         "hsp70-ftz",         "hsf2"       ]     },     {       "constructComponents": [         {           "componentID": "RGD:3044",           "componentRelation": "expresses",           "componentSymbol": "Map2"         },         {           "componentRelation": "is_regulated_by",           "componentSymbol": "UAS"         }       ],       "crossReferences": [         {           "id": "FB:FBtp0001429",           "pages": [             "construct"           ]         }       ],       "name": "P{UAS-MAP2.A}",       "primaryId": "FB:FBtp0001429",       "secondaryIds": [         "FB:FBtp0000433"       ],       "synonyms": [         "P{UAS-Map2c.A}",         "UAS-MAP2c",         "UAS-M2C48C (MAP2c)",         "P{UAS-MAP2c.A}",         "P{w+mC Map2UAS.cAa=UAS-Map2c.A}",         "P{w[+mC] Map2[UAS.cAa]=UAS-Map2c.A}"       ]     },     {       "constructComponents": [         {           "componentID": "HGNC:24650",           "componentRelation": "expresses",           "componentSymbol": "EHMT1"         },         {           "componentRelation": "is_regulated_by",           "componentSymbol": "UASt"         }       ],       "crossReferences": [         {           "id": "FB:FBtp0158396",           "pages": [             "construct"           ]         }       ],       "name": "PBac{UAS-hEHMT1.B}",       "primaryId": "FB:FBtp0158396",       "synonyms": []     },     {       "constructComponents": [         {           "componentID": "FB:FBgn0000097",           "componentRelation": "targets",           "componentSymbol": "aop"         },         {           "componentRelation": "is_regulated_by",           "componentSymbol": "lexAop"         }       ],       "crossReferences": [         {           "id": "FB:FBtp0158397",           "pages": [             "construct"           ]         }       ],       "name": "P{lexAop-HMS01627}",       "primaryId": "FB:FBtp0158397",       "synonyms": [         "Aop-atlRNAi"       ]     }   ],   "metaData": {     "dataProvider": {       "crossReference": {         "id": "FB",         "pages": [           "homepage"         ]       },       "type": "curated"     },     "dateProduced": "2023-03-24T09:10:32-04:00",     "release": "2023_01"   } }

@markquintontulloch @gildossantos
One thing to consider: If the cross-references submitted for constructs (by FlyBase or anyone else) only ever refer to IDs by the data provider, these cross-references could just go in the data provider cross references and not the class-level cross-references. Another issue is whether we want these cross references visible and/or editable from within the curation interface (a paradigm not yet currently supported for data providers in the curation system).

@gildossantos
OK, thanks! Yes, I was going to ask if you (FB) needed evidence attached to synonyms, secondary IDs, and/or cross references. We will definitely retain that data. I'm working on an update commit to address that now.

@gildossantos
Is it just construct synonyms you need evidence for, or also secondary IDs or cross-references?

Sorry to keep asking @chris-grove , but in place of name, could we also get construct_symbol with range ConstructSymbolSlotAnnotation so that we can capture evidence for the Construct's current symbol?

@gildossantos

I've added the ConstructSynonymSlotAnnotation and other supporting parts of the model
The modeling for the Construct class has so far employed a 'name' slot, not a 'symbol' slot. I think we would have to have more discussions within the working group about changing the 'name' to 'symbol' and whether everyone would be OK with that. From spot checking, it seems that people might be OK with that, but we need to discuss. Whichever we go with, we'll have to create a NameSlotAnnotation property for it.

Another issue is whether we want these cross references visible and/or editable from within the curation interface (a paradigm not yet currently supported for data providers in the curation system).

@chris-grove Would we want this?  My understanding of the purpose of the dataProvider xref is to link back to the MOD page for that entity/annotation.  For new entries created in the curation system there would be no corresponding page at the MOD site, and I don't really see much of a use-case for editing the submitted entries from bulk uploads.

@gildossantos @markquintontulloch
I've made the discussed changes in this PR, including:

Added 'alliance_member_release_version' slot to Ingest class
Added construct symbol (required) and name (not required) NameSlotAnnotation properties
Updated construct test JSON file

@chris-grove Did we decide to keep crossReferences? I thought DataProvider was sufficient (I may have missed that bit of the conversation though). Also, I thought taxon was going from the Reagent level.

@chris-grove Did we decide to keep crossReferences? I thought DataProvider was sufficient (I may have missed that bit of the conversation though). Also, I thought taxon was going from the Reagent level.

@markquintontulloch No, we can get rid of cross references for construct. It seems they will be needed for Antibody (that was the original model specification) so I thought we could leave them in the Reagent parent class, but I'm fine if we want to push the property back down to the Antibody sublass. There are cross_reference_dtos entries in the construct JSON test file just as a theoretical, like we have for generated_by and manufactured_by (also not going to be used for Constructs). If we'd prefer to remove entries in the test file that aren't intended to be submitted, then I can certainly clean those up in the test file.

@markquintontulloch
Also, I want to keep taxon in the Reagent class because I think that is intended to be used by Antibody and likely other subclasses. It is already not required.

Personally, I'd rather have duplicate slot definitions in child classes rather than slots in parent classes that aren't intended to be used in some child classes.  Having slots that aren't intended to be used is confusing for DQMs and developers.

@chris-grove Looks good.  If we get this merged in and create a release we could get the Java updated in this sprint and avoid having to wait for another release until the updated model is ready for submission on production.

@markquintontulloch OK, merged; good to go


Updating my info

It is ready to be merged, but can you take a look, please? @louisefindlay23

Looks great, @ahmadmardeni1.


Support for Auto-Incrementing String Identifiers in Prisma Model

Problem
In many applications, especially those involving financial transactions, order processing, or ticketing systems, there's a need for human-readable, unique identifiers. These are typically more complex than simple numeric IDs, often requiring a specific format that includes a combination of letters and auto-incremented numbers (e.g., "TRS000000001", "TRS000000002"). The current implementation in Prisma requires developers to manually implement logic for generating such identifiers, leading to additional complexity in application code and requiring extra database operations.
Suggested solution
I suggest Prisma introduces a feature that allows developers to define auto-incrementing string identifiers directly within the Prisma schema. This could be implemented as a new attribute or function that specifies a prefix and a pattern for zero-padding the auto-incremented number. For example:
model Payment {
  id        Int    @id @default(autoincrement())
  customId  String @default(autoString("TRS", 9)) // Proposed feature
}

This autoString("TRS", 9) would automatically generate an ID like TRS000000001 for the first record, TRS000000002 for the second, and so on, directly in the database layer, removing the need for additional application logic and database operations.
Alternatives
The current alternative involves creating a numeric auto-incremented field and then using application logic to format this number into the desired string format. This method requires an extra step of updating the record after its initial creation, leading to inefficiencies and potential performance issues, especially in applications with high transaction volumes.
Additional context
Implementing auto-incrementing string identifiers at the database level would streamline the development process, reduce the potential for errors, and improve performance by eliminating the need for additional record updates. This feature would greatly benefit applications that require easily readable, informative identifiers without sacrificing the integrity and uniqueness of database records.

I'd love to see this supported.


ActionDescriptor - Operations that change non-concurrent collections must have exclusive access

I've run into this issue when invoking a custom middleware component used for extracting the user identity from a REST API call. This is happening in our ASP.NET Core 2.1.6 API. This is a similar issue to IdentityServer/IdentityServer4 #2453. The culprit seems to be Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptor.Properties. It is being initialized as a Dictionary<object, object>, but it seems you may want to consider a ConcurrentDictionary instead. I've included the exception details. Please let me know what additional information would be helpful.
Exception:
System.InvalidOperationException
ExceptionMessage:
Operations that change non-concurrent collections must have exclusive access. A concurrent update was performed on this collection and corrupted its state. The collection's state is no longer correct.
Stack Trace:
at System.Collections.Generic.Dictionary2.FindEntry(TKey key) at System.Collections.Generic.Dictionary2.TryGetValue(TKey key, TValue& value)
at Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorExtensions.GetProperty[T](ActionDescriptor actionDescriptor)
at Microsoft.AspNetCore.Mvc.Abstractions.ActionDescriptorExtensions.IsImplicitlyMappedTo(ActionDescriptor action, ApiVersion version)
at Microsoft.AspNetCore.Mvc.Versioning.ApiVersionActionSelector.ActionIsSatisfiedBy(ActionDescriptor action, ApiVersionModel model, ApiVersion version, ICollection1 implicitMatches) at System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext()
at System.Collections.Generic.List1.AddEnumerable(IEnumerable1 enumerable)
at System.Collections.Generic.List1.InsertRange(Int32 index, IEnumerable1 collection)
at Microsoft.AspNetCore.Mvc.Versioning.ApiVersionActionSelector.SelectBestActions(ActionSelectionContext context)
at Microsoft.AspNetCore.Mvc.Versioning.ApiVersionActionSelector.SelectBestCandidate(RouteContext context, IReadOnlyList1 candidates) at Microsoft.AspNetCore.Mvc.Internal.MvcAttributeRouteHandler.RouteAsync(RouteContext context) at Microsoft.AspNetCore.Routing.Tree.TreeRouter.RouteAsync(RouteContext context) at Microsoft.AspNetCore.Routing.RouteCollection.RouteAsync(RouteContext context) at Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext) at FMGlobal.Lucid.Api.IndexManagement.Middleware.ConfigureUserIdentityInfoMiddleware.Invoke(HttpContext context, IEnvironmentLogic environmentLogic, UserIdentityInfo userIdentityInfo, ILogger1 logger)
in C:\agent13_work\39\s\src\Api.IndexManagement\Middleware\ConfigureUserIdentityInfoMiddleware.cs:line 48
at Lucid.Api.IndexManagement.Middleware.ApiKeyValidatorMiddleware.Invoke(HttpContext context)
in C:\agent13_work\39\s\src\Api.IndexManagement\Middleware\ApiKeyValidatorMiddleware.cs:line 60
at Lucid.Api.IndexManagement.Startup.<>c.<b__15_0>d.MoveNext()
in C:\agent13_work\39\s\src\Api.IndexManagement\Startup.cs:line 516
--- End of stack trace from previous location where exception was thrown ---
at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.Invoke(HttpContext context)

One more thing: I worked around this issue by recycling the app pool.  But I imagine this could happen again at any time.

This is a bug in the API Versioning library. Action Descriptors provide a way to be modified during startup and should be treated as immutable once that completes. We've worked with the author in the past to provide another solution, so this might already be fixed.
/cc @commonsensesoftware

Correct. This was reported and fixed as one of a few possible symptoms related to microsoft/aspnet-api-versioning#306. The fix was published in 2.3.0 back in June. Updating the package version should fix the problem for good. Thanks.

Great, I'm going to close this since we can't change how the API works, and the real cause is fixed in api-versioning. Thanks @commonsensesoftware !


dd.merge returns incorrect results

Before doing smth advanced It would be priceless to make sure that dask does basic operations correctly on largish data - varying npartitions, single machine or cluster compute.
[akravchenko@hnode1 nfs]$ python
Python 3.5.1 |Anaconda custom (64-bit)| (default, Dec  7 2015, 11:16:01)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import dask.dataframe as dd
>>> import pandas as pd
>>> import numpy as np
>>> import dask
>>> from dask.distributed import Executor, progress
>>> from dask.diagnostics import ProgressBar
>>>
>>> f0=pd.DataFrame({'v0':np.random.randint(1,10000000, (100000000,))})
>>> f0_d=dd.from_pandas(f0, npartitions=100)
>>> f1=f0[['v0']].drop_duplicates()
>>> f1_d=dd.from_pandas(f1, npartitions=10) #npartitions=1 seems to give a correct join result

where
>>> len(f0)
100000000
>>> len(f1)
9999546

join from dask
>>> res=dd.merge(f0_d,f1_d, on='v0', how='inner').count()
>>> dask.compute(res)
(v0    130892991
dtype: int64,)
>>>
>>> dask.compute(res)
(v0    109156296
dtype: int64,)
>>>

and join from pandas:
>>> res_pd=pd.merge(f0, f1, on='v0', how='inner')
>>> res_pd.shape
(100000000, 1)

Thanks for the bug report. Just for future reference, if you wrap code blocks with 3 backticks, they'll format nicely. I added them to your original issue already.
I don't seem to be able to reproduce your issue. Here's my experience:
In [1]: %paste
>>> import dask.dataframe as dd
>>> import pandas as pd
>>> import numpy as np
>>> import dask

## -- End pasted text --

In [2]: %paste
>>> f0=pd.DataFrame({'v0':np.random.randint(1,10000000, (100000000,))})
>>> f0_d=dd.from_pandas(f0, npartitions=100)
>>> f1=f0[['v0']].drop_duplicates()
>>> f1_d=dd.from_pandas(f1, npartitions=10)

## -- End pasted text --

In [3]: len(f0)
Out[3]: 100000000

In [4]: len(f1)
Out[4]: 9999541

In [5]: res=dd.merge(f0_d,f1_d, on='v0', how='inner')

In [6]: res
Out[6]: dd.DataFrame<hash-jo..., npartitions=100>

In [7]: t = res.compute()   # Do just the join in dask

In [8]: t.count()
Out[8]:
v0    100000000
dtype: int64

In [9]: t2 = res.count().compute()    # Do the join and count in dask

In [10]: t2
Out[10]:
v0    100000000
dtype: int64

In [11]: %paste
>>> res_pd=pd.merge(f0, f1, on='v0', how='inner')
>>> res_pd.shape
(100000000, 1)

## -- End pasted text --

Out[11]: (100000000, 1)

I did this a few times, and always got the correct results. It could be a periodic error, or it may be a version issue. What version of dask, pandas, and numpy are you using? If you're not using the latest version of dask (0.10.1) or pandas (0.18.1) can you try again after upgrading?

And from pure Windows:
C:\Users\akravchenko\AppData\Local\Continuum\Anaconda3\Scripts>ipython
Python 3.5.2 |Anaconda 4.1.1 (64-bit)| (default, Jul  5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)]
Type "copyright", "credits" or "license" for more information.

IPython 4.2.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: %paste
>>> import dask.dataframe as dd
>>> import pandas as pd
>>> import numpy as np
>>> import dask

## -- End pasted text --

In [2]: %paste
>>> f0=pd.DataFrame({'v0':np.random.randint(1,10000000, (100000000,))})
>>> f0_d=dd.from_pandas(f0, npartitions=100)
>>> f1=f0[['v0']].drop_duplicates()
>>> f1_d=dd.from_pandas(f1, npartitions=10)

## -- End pasted text --

In [3]: res=dd.merge(f0_d,f1_d, on='v0', how='inner')

In [4]: res
Out[4]: dd.DataFrame<hash-jo..., npartitions=100>

In [5]: t = res.compute()

In [6]: t.count()
Out[6]:
v0    106925853
dtype: int64

And on my Mac (OS X 10.10.5):
Antons-MacBook-Pro:~ akravchenko$ ipython
Python 3.5.1 |Anaconda 4.0.0 (x86_64)| (default, Dec  7 2015, 11:24:55)
Type "copyright", "credits" or "license" for more information.

IPython 4.1.2 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: %paste
>>> import dask.dataframe as dd
>>> import pandas as pd
>>> import numpy as np
>>> import dask

## -- End pasted text --

In [2]: %paste
>>> f0=pd.DataFrame({'v0':np.random.randint(1,10000000, (100000000,))})
>>> f0_d=dd.from_pandas(f0, npartitions=100)
>>> f1=f0[['v0']].drop_duplicates()
>>> f1_d=dd.from_pandas(f1, npartitions=10)

## -- End pasted text --

In [3]: len(f0)
Out[3]: 100000000

In [4]: len(f1)
Out[4]: 9999543

In [5]: res=dd.merge(f0_d,f1_d, on='v0', how='inner')

In [6]: res
Out[6]: dd.DataFrame<hash-jo..., npartitions=100>

In [7]: t = res.compute()

In [8]: t.count()
Out[8]:
v0    115868592
dtype: int64

I duplicated this behavior in Mac OS using dask version 0.10.1 and master in Python 2 and 3 with numpy 1.11.1, pandas 0.18.1.
Reproduced with conda create -n dask1375 dask ; source activate dask1375 and running this script:
import dask.dataframe as dd
import pandas as pd
import numpy as np
import dask
#from dask.distributed import Executor, progress
from dask.diagnostics import ProgressBar

N = 100000000
f0=pd.DataFrame({'v0':np.random.randint(1,N//10, (N,))})
f0_d=dd.from_pandas(f0, npartitions=100)
f1=f0[['v0']].drop_duplicates()
f1_d=dd.from_pandas(f1, npartitions=10)
print(len(f0))
print(len(f1))
res=dd.merge(f0_d,f1_d, on='v0', how='inner').count()
print(dask.compute(res))
print(dask.compute(res))
res_pd=pd.merge(f0, f1, on='v0', how='inner')
print(res_pd.shape)

I'll try to take a look at this today
On Sat, Jul 16, 2016 at 1:03 PM, Erik Welch<EMAIL_ADDRESS>wrote:

I duplicated this behavior in Mac OS using dask version 0.10.1 and master
in Python 2 and 3 with numpy 1.11.1, pandas 0.18.1.
Reproduced with conda create -n dask1375 dask ; source activate dask1375
and running this script:
import dask.dataframe as ddimport pandas as pdimport numpy as npimport dask#from dask.distributed import Executor, progressfrom dask.diagnostics import ProgressBar
N = 100000000
f0=pd.DataFrame({'v0':np.random.randint(1,N//10, (N,))})
f0_d=dd.from_pandas(f0, npartitions=100)
f1=f0[['v0']].drop_duplicates()
f1_d=dd.from_pandas(f1, npartitions=10)print(len(f0))print(len(f1))
res=dd.merge(f0_d,f1_d, on='v0', how='inner').count()print(dask.compute(res))print(dask.compute(res))
res_pd=pd.merge(f0, f1, on='v0', how='inner')print(res_pd.shape)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/dask/dask/issues/1375#issuecomment-233140136, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AASszJWz5RdmC5KXFnqrbMlX-GRo6Rafks5qWQ7PgaJpZM4JM78m
.

I believe that this is resolved in #1383

This likely also solves http://stackoverflow.com/questions/38416836/result-of-join-in-dask-dataframes-seems-to-depend-on-the-way-the-dask-datafram

Hi Matt, is a fix for #1383 already merged in dask?

Not yet.  I'm rolling a few fixes in there.  I wouldn't be surprised if it was merged late tomorrow.


refactor(pinia-orm)!: remove findIn since find does the same

Codecov Report

:exclamation: No coverage uploaded for pull request base (next-release@0b71a7d). Click here to learn what that means.
The diff coverage is 100.00%.

@@               Coverage Diff               @@
##             next-release     #144   +/-   ##
===============================================
  Coverage                ?   99.60%
===============================================
  Files                   ?       53
  Lines                   ?     4513
  Branches                ?      373
===============================================
  Hits                    ?     4495
  Misses                  ?       18
  Partials                ?        0

Impacted Files
Coverage Δ

packages/pinia-orm/src/query/Query.ts
99.75% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us.


Update CreateTransfer : deprecated + refactoring

Replaced deprecated method getRecentBlockhash by getLatestBlockhash  Code refactoring in checkAccount()

@jordansexton Any ETA on commit ?

The build failed because of the recent change in the folder structure (pos ==> examples/pos).
But the file in itself is building correctly :-D

Thanks for this! The latestBlockhash change is good, and refactoring the account checks is a good idea, but doesn't go far enough yet.

Excellent comment.
Thanks for all the explanation that were crystal clear.
It's done.


Admin Dashboard - Implement "Print" function

Connect the "print" button in admin's dashboard to the browser print function
Points: 1

Canceled by the client.


Issue in Python [Errno 2 ] No such file or directory

I'm facing this issue [Errno 2 ] No such file or directory. How to fix it?

@Ishtiaq-Tahir It's probably because the file path does not exist, try running this command outside VS Code in Powershell after running
cd C:\Users\<username>\Desktop\new_system

and you'll notice it'll likely lead to the same error.
If that's not the case and you can demonstrate that the file exists inside "new_system" directory, please let us know and we'll be happy to reopen the issue and have a look again.


make relocatable

Requires https://github.com/JuliaPlots/Makie.jl/pull/1587 and https://github.com/SimonDanisch/JSServe.jl/pull/117

Codecov Report

Merging #43 (ea00d9f) into main (bce78d1) will not change coverage.
The diff coverage is 0.00%.

@@          Coverage Diff          @@
##            main     #43   +/-   ##
=====================================
  Coverage   4.58%   4.58%
=====================================
  Files         28      28
  Lines        959     959
=====================================
  Hits          44      44
  Misses       915     915

Impacted Files
Coverage Δ

src/DataVisualization.jl
0.00% <0.00%> (ø)

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 bce78d1...ea00d9f. Read the comment docs.


install ohai from Gemfile.lock

not from the software dep
this fixes the multiple chef-config gem issue.

@chef/client-core  reviewage
some points of note here -

we should be installing all gems now from the Gemfile.lock whenever possible and not using software definitions like this.  because we installed ohai first it pulled in chef-config 13.1.x and then later the bundle install of the chef-dk Gemfile.lock installed the locked chef-config 13.0.x so we wound up with duplicate chef-config gems.  by only installing gems from the Gemfile.lock we eliminate installing duplicated gems.

since appbundler now pins all gems in the Gemfile.lock in all of the binstubs this wouldn't have even been a problem but we and sous-chef had been using non-appbundled direct links into /opt/chefdk/embeddded/bin/{kitchen,chefstyle,etc}

in rare cases like the nokogiri 1.7.x no-windows-fat-gem-for-ruby-24 issue we might need to install a gem from git and use a custom software definition to do so, we should be back now where we don't have to.  that's just do-what-you-gotta-to-ship territory though...

also, separate PR incoming to bump to chef 13.1.x and bump everything else.


Fastest Way to Access Annotated Dataset?

Hi, thanks for the very cool work!
I'm the maintainer of BlendSQL, and am looking to do some research into evaluations on your TAG benchmark. After following the steps in your README, it seems as though hand_written.py is the only place containing the gold question/answer annotations (of course i could be wrong here)
Is parsing the hand_written.py file currently the recommended way to get access to the dataset?

Sorry for flip-flopping on this issue - I just noticed some discrepancies between the content of tag_queries.csv and the hand_written.py file, and am curious which should be used to perform the same benchmark described in your paper.
Query id 6 in tag_queries.csv:

Among the root posts owned by csgillespie, what is the id of the post I could reference to answer my question about ordinary least squares?

pipeline_6() in hand_written.py:

query = "Among the posts owned by csgillespie, how many of them are root posts and mention academic papers?"

Thanks for catching the discrepancies. These should hopefully be fixed now and tag_queries.csv contains the exact queries we used in our benchmark (and in handwritten.py).


Running the mod on 1.18.2 results in mixin errors

https://pastebin.com/nEq1v7YE

@JSJBDEV

updated and fixed, as you can probably gather im not nearly as active as I use to be but I guess I should update this mod where I can lol. 1.8.0 on cf soon


Asset pipeline feature

I had a thought the other day that something like an asset pipeline feature could be useful:
Less CSS Example

Handles requests for /styles.css
If first request for it, generates the asset by calling lessc styles.less and returning stdout to the client.
The output of the generate command is cached to disk for future requests.
When the monitored file, styles.less changes - modtime changes, then the cache is cleared.

dynamicAsset /styles.css {
    monitorType modtime
    monitor styles.less
    cache disk
    generate "lessc styles.less"
}

Monitor Type
Defines how to determine whether the monitored files have changed, thus clearing the cache.

modtime: modified timestamp changes
checksum: file's content checksum changes

Monitor
Defines a list of files to monitor with the selected Monitor Type.
Generate
Command to run to generate the output to return when the browser requests the dynamic asset. This output is cached.
Cache
Defines the method of caching to use.

disk: cache to a temp file on disk
memory: cache in memory

Any interest in something like this? I haven't put much time into thinking about this. Feel free to shoot down or evolve. :)

It's not a bad idea. In fact, the markdown directive does a very similar thing, specifically for markdown.
Perhaps this pipeline could be used for minifying JS, compressing images, compiling CSS, anything else? Although this gets a bit clunky if you have more than one file you want to dynamically generate.
Let's look at keeping the directive lowercase, and one word if possible.

@jpoehls This might make a useful Caddy add-on.


engine: fix timeout error when creating master client

What problem does this PR solve?

Issue Number: close #6008
What is changed and how it works?
Try again when creating master client timeout.
Check List
Tests

Unit test

Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note
`None`.

/run-all-tests

/cc amyangfei
/cc liuzix

Codecov Report

Merging #6048 (7b0229d) into master (b1ce2c9) will increase coverage by 0.5185%.
The diff coverage is 66.4249%.

Flag
Coverage Δ

cdc
62.9946% <69.7373%> (+0.6176%)
:arrow_up:

dm
51.9481% <35.5555%> (-0.0249%)
:arrow_down:

engine
63.7373% <38.3419%> (+1.2968%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.
@@               Coverage Diff                @@
##             master      #6048        +/-   ##
================================================
+ Coverage   57.2815%   57.8001%   +0.5185%
================================================
  Files           680        696        +16
  Lines         80230      82313      +2083
================================================
+ Hits          45957      47577      +1620
- Misses        30009      30407       +398
- Partials       4264       4329        +65

/area engine

/status ptal

/run-all-tests

/merge


Remove binaries from version control

I was literally shocked to discover that nuget.exe is committed into version control.
See .gitignore.

Wow.


Added a way to edit the earth radius

Earth is not quite a sphere. Its radius can be different on different points, this change allows to set different radius to the MathUtil class 💪

Brilliant, many thanks @RetaxMaster !


Add instrumentation for Concurrent::ThreadPoolExecutor#post

Overview
Closes #1601
Submitter Checklist:

[X] Include a link to the related GitHub issue, if applicable
[ ] Include a security review link, if applicable

Testing
The agent includes a suite of unit and functional tests which should be used to
verify your changes don't break existing functionality. These tests will run with
GitHub Actions when a pull request is made. More details on running the tests locally can be found
here for our unit tests,
and here for our functional tests.
For most contributions it is strongly recommended to add additional tests which
exercise your changes.
Reviewer Checklist

[ ] Perform code review
[ ] Add performance label
[ ] Perform appropriate level of performance testing
[ ] Confirm all checks passed
[ ] Add version label prior to acceptance

The changes I pushed on 12/14 change the following:

Instrumentation now points to Concurrent::ThreadPoolExecutor#post instead of Concurrent::Promises#future
There isn't an option to set your own name anymore. There are too many methods that feed into ThreadPoolExecutor to make this safe.

We're getting segments nested within a transaction that have the DEFAULT_NAME. Calling something else that gets instrumented within Concurrent::Promises#future, like a Net::HTTP.get call, will also be reported if instrumentation.thread.tracing is true. However, it'll appear as a fragment, not as a nested call.
Next steps:

Have a Net::HTTP.get call correctly nest under the Concurrent::ThreadPoolExecutor#post segment
Verify the segment for Concurrent::ThreadPoolExecutor#post gets generated if it's called within a Rails controller action

It also looks like I may have some syntax that isn't compatible with Ruby 2.2: https://github.com/newrelic/newrelic-ruby-agent/actions/runs/3699041227/jobs/6265975231#step:11:3068


Bug: Routing based on path parameter data type is not using first matching route handler

Description
Was told Litestar is intended to route differently based on the type of the path parameter:

Q: Is Litestar intended to route differently based on the type of the path parameter
A:  ... this only works if the parameters you pass in are actually compatible and distinct, e.g. using a str is basically a catch-all, so if you provide that last, it will always match

However, when providing route handlers in the order of int path param handler followed by str path param handler, the str path param handler is the only one that is called in the example code below.
URL to code causing the issue
No response
MCVE
from litestar import Litestar, get

@get("/{id:int}")
async def hello_world_int(id: int) -> str:
    return f"Hello, world (int)! {id}"

@get("/{id:str}")
async def hello_world_str(id: str) -> str:
    return f"Hello, world (str)! {id}"

# Expect that path "/42" would route to hello_world_int
# and path "/abc" would go to hello_world_str
app = Litestar([hello_world_int, hello_world_str])

Steps to reproduce
1. Run app: `litestar run`
2. In browser access: <IP_ADDRESS>:8000/42
3. Result: Hello, world (str)! 42
  Error: (expected to see "(int)" rather than "(str)"
4. In browser access: <IP_ADDRESS>:8000/ABC
5. Result (as expected): Hello, world (str)! ABC

Screenshots
No response
Logs
No response
Litestar Version
2.9.1
Platform

[X] Linux
[ ] Mac
[ ] Windows
[ ] Other (Please specify in the description above)

[!NOTE]
While we are open for sponsoring on GitHub Sponsors and
OpenCollective, we also utilize Polar.sh to engage in pledge-based sponsorship.
Check out all issues funded or available for funding on our Polar.sh dashboard

If you would like to see an issue prioritized, make a pledge towards it!
We receive the pledge once the issue is completed & verified
This, along with engagement in the community, helps us know which features are a priority to our users.

I faced the same problem. I'm trying to resolve uuid and int as path parameter, but in all cases only the first declared function will be called.

I managed to reproduce this issue with the following unit test.
I am currently attempting understanding the issue, and hopefully I will come up with a fix
from litestar import get
from litestar.testing.helpers import create_test_client

def test_conflicting_handlers() -> None:
    @get("/{id:int}")
    async def hello_world_int(id: int) -> str:
        return f"Hello, world (int)! {id}"

    @get("/{id:str}")
    async def hello_world_str(id: str) -> str:
        return f"Hello, world (str)! {id}"

    with create_test_client(route_handlers=[hello_world_int, hello_world_str]) as client:
        response = client.get("/42")
        assert response.status_code == 200
        assert "int" in response.text # FAILED

        response = client.get("/ABC")
        assert response.status_code == 200
        assert "str" in response.text

Hi @provinzkraut @Goldziher I need your guidance to come up with a solution. Please guide me towards someone else if you are not the right people to speak to. Also please guide me to the forum where we should have this discussion.
The problem here is that the RouteTrieNode add_route_to_trie doesn't differentiate between types of path parameters. When one is encountered it adds a PathParameterSentinel that can only be unique per parent node.
# this is the line that checks if a PathParameterSentinel is already in the children of the parent.
# on the second route it is already there and a new node is not created
if next_node_key not in current_node.
    current_node.children[next_node_key] = create_node(path_template=route.path_format)

Now that I understand the problem there are 2 solutions:

Introduce support for multiple path parameters differentiated by type.

This will require replacing PathParameterSentinel with types for each of the supported parameter type. (ex: PathParameterSentinel.STR, PathParameterSentinel.INT, etc.)
I have already started working on it. The solution became a little bit complex, but will likely be a cool feature in the end.
I can submit a draft PR if you guys are ok with this.

Introduce validations for routes overriding eachother.

There should be at least some sort of error telling the user that this is not something that is supported.
There doesn't seem to be any validation at all on overriding routes, the traversal code seems to just delete the second route in the static route case. I can't talk about other types of routes.

My vote is against introducing this new feature, and instead work on proper validations.
With my understanding of the vision of Litestar is that parsing and validation parameters should be encoded at the level of the handler's function signature. You shouldn't have to have 2 routes for 2 different handlers. I think that for this case we should have some sort of union parameter, like this

@get("/{id}")
async def hello_worldt(id: int | str) -> str:
    return f"Hello, world! {id}"

app = Litestar([hello_world])

Thanks for the investigation here @IvanovCosmin!

My vote is against introducing this new feature, and instead work on proper validations.

I agree. That seems to be the proper way to handle this.


Why my withdrawal is in "Accepted" state all the time?

I have added new cryptocurrency to peatio.
Deposits work well. There was issue similar to https://github.com/peatio/peatio/issues/484 but I fixed it. Now it withdraws but it always shows "accepted". I guess it has to show "processing", "done" but it hasn't.

What is the reason? I didn't found any errors in production.log but these are from peatio/amqp/withdraw_coin.log:
E, [2017-04-05T04:04:48.307375 #25223] ERROR -- : Resource temporarily unavailable - read would block (IO::EAGAINWaitReadable)
/home/ubuntu/peatio/current/vendor/bundle/ruby/2.2.0/gems/bunny-1.2.1/lib/bunny/cruby/socket.rb:41:in `read_nonblock'
/home/ubuntu/peatio/current/vendor/bundle/ruby/2.2.0/gems/bunny-1.2.1/lib/bunny/cruby/socket.rb:41:in `block in read_fully'
/home/ubuntu/peatio/current/vendor/bundle/ruby/2.2.0/gems/bunny-1.2.1/lib/bunny/cruby/socket.rb:40:in `loop'
/home/ubuntu/peatio/current/vendor/bundle/ruby/2.2.0/gems/bunny-1.2.1/lib/bunny/cruby/socket.rb:40:in `read_fully'
/home/ubuntu/peatio/current/vendor/bundle/ruby/2.2.0/gems/bunny-1.2.1/lib/bunny/transport.rb:199:in `read_next_frame'
/home/ubuntu/peatio/current/vendor/bundle/ruby/2.2.0/gems/bunny-1.2.1/lib/bunny/session.rb:923:in `init_connection'
/home/ubuntu/peatio/current/vendor/bundle/ruby/2.2.0/gems/bunny-1.2.1/lib/bunny/session.rb:254:in `start'
/home/ubuntu/peatio/current/lib/daemons/amqp_daemon.rb:17:in `<top (required)>'
/home/ubuntu/peatio/current/vendor/bundle/ruby/2.2.0/gems/daemons-1.1.9/lib/daemons/application.rb:203:in `load'
/home/ubuntu/peatio/current/vendor/bundle/ruby/2.2.0/gems/daemons-1.1.9/lib/daemons/application.rb:203:in `start_load'
/home/ubuntu/peatio/current/vendor/bundle/ruby/2.2.0/gems/daemons-1.1.9/lib/daemons/application.rb:298:in `start'
/home/ubuntu/peatio/current/vendor/bundle/ruby/2.2.0/gems/daemons-1.1.9/lib/daemons/controller.rb:70:in `run'
/home/ubuntu/peatio/current/vendor/bundle/ruby/2.2.0/gems/daemons-1.1.9/lib/daemons.rb:147:in `block in run'
/home/ubuntu/peatio/current/vendor/bundle/ruby/2.2.0/gems/daemons-1.1.9/lib/daemons/cmdline.rb:109:in `call'
/home/ubuntu/peatio/current/vendor/bundle/ruby/2.2.0/gems/daemons-1.1.9/lib/daemons/cmdline.rb:109:in `catch_exceptions'
/home/ubuntu/peatio/current/vendor/bundle/ruby/2.2.0/gems/daemons-1.1.9/lib/daemons.rb:146:in `run'
/home/ubuntu/peatio/current/vendor/bundle/ruby/2.2.0/gems/daemons-rails-1.2.1/lib/daemons/rails.rb:16:in `run'
lib/daemons/withdraw_coin_ctl:11:in `<main>'

UPDATE. Seems like I can ignore *.log according to this https://github.com/peatio/peatio/issues/430#issuecomment-74631086
but peatio/amqp/withdraw_coin.output gives nothing:
I, [2017-03-24T21:28:40.205644 #24500]  INFO -- : Connected to AMQP broker (prefetch: default)
Terminating threads ..
Stopped.
peatio:amqp:withdraw_coin: process with pid 20383 started.
I, [2017-03-27T04:37:44.584227 #20383]  INFO -- : Connected to AMQP broker (prefetch: default)
Terminating threads ..
Stopped.
peatio:amqp:withdraw_coin: process with pid 26944 started.
I, [2017-04-03T21:45:50.553229 #26944]  INFO -- : Connected to AMQP broker (prefetch: default)
Terminating threads ..
Stopped.
peatio:amqp:withdraw_coin: process with pid 10435 started.
I, [2017-04-03T22:08:32.097136 #10435]  INFO -- : Connected to AMQP broker (prefetch: default)
Terminating threads ..
Stopped.
peatio:amqp:withdraw_coin: process with pid 25223 started.
I, [2017-04-05T01:03:28.116645 #25223]  INFO -- : Connected to AMQP broker (prefetch: default)

you have to go into the admin panel and accept the withdraw


add support for "send alert every time threshold is met"

the ui have an option to trigger an option every time threshold is met

the terraform provider doesn't have this option.
this would be very useful as all our triggers are managed by terraform

Hi, @nicolasburtey! The API endpoint for this feature is being worked on now and once it is ready the provider will support it.


ExtPubKey.Parse FormatException

Hey. When trying to parse an extended public key..
var extPubKey = ExtPubKey.Parse("xpub6BnNNW4JeAJ3awXNhMvCfagtGXaYSAYr4G7DhW7tDww2UdMgc4KeSFU9Ynmc1oxfWyqNPs21ZTDUsghULoNtkCpzHJD6z2gfsey8E3fnD3d", Network.Main);
..I get a FormatException "Invalid base58 string".
Unfortunately, there is no way to get the original mnemonics, but this extended key is generated like thousands of others, and the only problem is with it. Can someone tell me the reason and its solution? Thank.

@lutk as the error tells you, the xpub you copy is not valid. Where did you take it from? You probably missed a character when copying.


Dashboard crashes

Every time I open the dashboard it immediately crashes and says:
(node:15840) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 uncaughtException listeners added to [process].
I tried commenting my whole code and keep just the dashboard code and it still crashes.

Do you mind sharing the actual code?

Do you mind sharing the actual code?

ok nvm I was using the plugin wrong.


[FEATURE] ToolProvider | Select tools dynamically on incoming message

In this PR, the idea is to implement the selection of tools dynamically on incoming message
New Feature
Make ToolProvider from LangChain4J Quarkus ready
We can set our ToolProvider like this:
@RegisterAiService(toolProviderSupplier = MyCustomToolProviderSupplier.class)
interface MyServiceWithToolProvider {
     String chat(@UserMessage String msg, @MemoryId Object id);
}

Add a simple Supplier like this:
@ApplicationScoped
public class MyCustomToolProviderSupplier implements Supplier<ToolProvider> {
    @Inject
    MyCustomToolProvider myCustomToolProvider;

    @Override
    public ToolProvider get() {
        return myCustomToolProvider;
    }
}

Now, we can select tools dynamically in our ToolProvider like this:
@ApplicationScoped
public class MyCustomToolProvider implements ToolProvider {

    @Override
    public ToolProviderResult provideTools(ToolProviderRequest request) {
        boolean containsBooking = request.userMessage().singleText().contains("booking");
	if (!containsBooking) {
	      return ToolProviderResult.builder().build();
	}

        ToolSpecification toolSpecification = ToolSpecification.builder()
                .name("get_booking_advice")
                .description("Returns booking advice")
                .build();
        ToolExecutor toolExecutor = (t, m) -> "You should book your vacation now :)";
        return ToolProviderResult.builder()
                .add(toolSpecification, toolExecutor)
                .build();
    }
}

Closes: #962

Thank you very much for your feedback, @geoand!
I've made some changes, and I hope they align with your suggestions. 😁

Thanks!
I'll have a look soon

Has the DevUI part been reviewed by @jmartisk and is it okay?

Ah, I forgot about that! Good point :)
@jmatrisk?

Sorry, been traveling now. I'll have a look ASAP

Also I'd love to see an update of the documentation (agent-and-tools.adoc) with this :)

I will work on the documentation for this feature now. Tomorrow, I will commit my first version of it.

Merged, thanks :)

I'm looking at the ToolProvider interface, which currently only provides two parameters in ToolProviderRequest: chatMemoryId and UserMessage. From my perspective, it might be useful to add access to the list of available tools associated with the method. This extension would allow developers to filter from the current list of tools, or to redefine the list entirely by specifying something new based on the UserMessage.
Is this something that could be addressed in a new issue? WDYT?

I think it makes sense to, yeah

@d135-1r43 are you planning on making an improvement here?


Add new Bonds

@camdengrieh this is develop to master, this would need to be in staging before I could push it up


error matchHeight() is not a function

I'm newbie guys. I really wanna find out why do i keeping receive this error: matchHeight is not a function. Did i made some syntax mistakes

here is my code snippet:
$("#row").click(function() {
$('.box').matchHeight();
});

Probably you never included jquery-match-height or the path to the script is not right.
Try to call the script with the path you entered in your HTML-page directly in the browser.
The script has to be included above / before the code you posted.
You can check for any errors in the browser-console (in FireFox or Chrome you can open it with the key F12).

i checked again and i'm sure that i included the script above the code i posted

So then you should have some HTML like this:

 ...
 ...
 ...

And when you click on the row the height of the inside-divisions shall be the same height?

actually this is what i have:

Equal height each row

 ...
 ...
 ...

but i cant bind the click even to the matchHeight function. Everytime the browser gave me the error notification that matHeight() is not a function

This small HTML-Script is working, so you must have made some other fault.


FewestModules can result in filenames that are greater than 255 Characters

So I have a private repository where I attempted to break a bunch of scalajs code into modules.  Alot of those modules reference  the same code, so it creates filenames longer than 255 characters which basically no filesystem supports.  I can't share the code but I do feel like someone on the maintainer team would understand how this might happen.  So I switched to smallest modules and the problem went away.
Happy to attempt to put something together but figured I'd file the issue first.

Yeah... The problematic function is here:
https://github.com/scala-js/scala-js/blob/95c6419b2ddce046d7ee59b1b01345748ffd5538/linker/shared/src/main/scala/org/scalajs/linker/frontend/modulesplitter/MaxModuleAnalyzer.scala#L53
For internal modules we can pretty much chose whatever ID we want, as long as it is somewhat stable (same code should go into same module ID).
I chose this ID pattern so it's easy to understand the origin. Maybe we need to switch to less human readable IDs.


'Client' object has no attribute 'download_file'

Throws the following error since replacing bbp_client and bbp_services with hbp_service_client:
> 'Client' object has no attribute 'download_file'

Stack Trace:
Password:
Traceback (most recent call last):
  File "run_tests.py", line 41, in <module>
    test = test_library.get_validation_test(config.test)
  File "/home/shailesh/miniconda2/lib/python2.7/site-packages/hbp_validation_framework/__init__.py", line 197, in get_validation_test
    observation_data = self._load_reference_data(config["data_location"])
  File "/home/shailesh/miniconda2/lib/python2.7/site-packages/hbp_validation_framework/__init__.py", line 230, in _load_reference_data
    observation_data = datastore.load_data(uri)
  File "/home/shailesh/miniconda2/lib/python2.7/site-packages/hbp_validation_framework/datastores.py", line 134, in load_data
    return json.loads(self.doc_client.download_file(remote_path))
AttributeError: 'Client' object has no attribute 'download_file'

It appears I modified upload_data() but forgot to update download_data() and load_data()

Should be fixed in ff0485c27a92a2bfb7bb71d097f3e85ba0f39995
@appukuttan-shailesh can you verify?

Yes it is working now. Tested.
Thanks for the quick fix.


Draggable areas in narrow window titlebars on macOS are absent

Is the bug present when using the default Obsidian theme?
No
Is the bug present when snippets and plugins are disabled?
Yes
Minimal theme version
6.1.17
Describe the bug
When using the Minimal theme on macOS, the areas of a window's title bar that you can click and drag to move the window are significantly reduced compared to the default theme. In windows where the tabs occupy the maximum possible width, it appears to be impossible to move the window with the mouse.
A video is attached showing this behavior under Minimal and Default themes.
https://user-images.githubusercontent.com/3117884/207167957-47a22b96-0eba-4348-9510-9e73081faae6.mp4
Debug info
SYSTEM INFO:
	Obsidian version: v1.1.4
	Installer version: v0.14.6
	Operating system: Darwin Kernel Version 22.1.0: Sun Oct  9 20:14:54 PDT 2022; root:xnu-8792.41.9~2/RELEASE_X86_64 22.1.0
	Login status: logged in
	Catalyst license: insider
	Insider build toggle: on
	Live preview: on
	Legacy editor: off
	Base theme: adapt to system
	Community theme: Minimal v6.1.17
	Snippets enabled: 1
	Restricted mode: off
	Plugins installed: 10
	Plugins enabled: 10
		1: Smart Typography v1.0.18
		2: Dataview v0.5.47
		3: Folder Note Core v1.3.5
		4: AidenLx's Folder Note v0.16.4
		5: AidenLx's Folder Note - folderv component v1.0.0
		6: Minimal Theme Settings v6.1.0
		7: Advanced Tables v0.17.3
		8: Natural Language Dates v0.6.1
		9: Obsidian42 - BRAT v0.6.36
		10: Periodic Notes v1.0.0-beta.3

RECOMMENDATIONS:
	Custom theme and snippets: for cosmetic issues, please first try updating your theme and disabling your snippets. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community theme and snippets.
	Community plugins: for bugs, please first try updating all your plugins to latest. If still not fixed, please try to make the issue happen in the Sandbox Vault or disable community plugins.

I am not able to reproduce this.


Export containerd's metrics

Is your feature request related to a problem? Please describe

This PR will make containerd export metrics at <IP_ADDRESS>:9000/v1/metrics. I would like to be able to have prometheus retrieve this.
https://github.com/gitpod-io/gitpod-packer-gcp-image/pull/190
Describe the behaviour you'd like

We can see container_start metrics on Grafana.
https://github.com/containerd/containerd/blob/9afc778b7354d4b89f02daebcd56eaf85b96c98d/pkg/cri/server/metrics.go#L55
Describe alternatives you've considered

Additional context

This feature request came from
https://www.notion.so/Why-does-gen75-s-workspace-start-slower-be5fc7fdb86c4ea7b964e1cb9cab4654?d=01eeccdc20b9481e98ccdc76781a6463#7c0c8799aa4849a88d3b3c813e7ed2c3

@ArthurSens We're currently working in https://github.com/gitpod-io/ops/pull/6775, such that we expose containerd metrics via a kube-rbac-proxy daemonset, and ServiceMonitor (which, I think will Prometheus what to scrape).
I'm not sure if we need this issue for the observability repo, things appear to be contained in the ops repo via https://github.com/gitpod-io/ops/pull/6775.
Does that sound right? Is there work to do in the observability repo that I am missing? If no, perhaps we can close this issue as Won't Fix?


Feature/1444/swagger validation

Changing the operation Id also changes the swagger client-generated names...this is going to be a pain because will need to change client and ui too. Tonnes of breaking changes

Too disruptive, mission aborted