How to access this.props from static navigationOptions=

Hello everyone,
My i10n related information are stored in the props of components, however, static properties cannot access this.props, which makes i10n for headers and labels difficult.
Is there any work arounds?
Thank you very much, community!

On your componentDidMount, you can use
this.navigation.setParams({
 myTitle: this.props.myTitle
})

Then, pass a function to your header on static props. This function has access to the params you set before
static navigationProps = {
 header: ({ state }) => {
 return {
  title: state.params.myTitle
 }
}
}

You can use the setParams function on componentWIllReceiveProps, but don't forget to compare this.props with nextProps to see if there was a change to myTitle before calling setParams, or you will enter a infinity loop

Yep, and you can also put that info in the route params, if you prefer.

@rafaelcorreiapoli
static navigationProps = {
 header: ({ state }) => {
 return {
  title: state.params.myTitle
 }
}
}

has now been refactored into
static navigationProps = {
  headerLeft: <Ele></Ele>
}

How do I access navigate in onPress of Ele?

Since it is a react component, it call be a connected component which has access to whatever you want :P

@srameshr you can access navigation this way...
navigationOptions: ({navigation}) => ({
  title: `${navigation.state.params.name}'s Profile'`,
}),

@rafaelcorreiapoli thanks but how do I access callback methods, e.g.
<Button onPress={this._createAlbum.bind(this)}>

If there is no this ?

In 0.47
@rafaelcorreiapoli    unfortunately above solution not work for me. it give me error as this.navigation is not defined.
this.navigation.setParams({
 myTitle: this.props.myTitle
})

Below is my workaround. It perfectly get params from props
componentWillMount(){
        const {setParams} = this.props.navigation;
        setParams({websiteURL: this.props.websiteURL});
}

static navigationOptions = ({ navigation  }) => {

        const {state} = navigation;

        if(state.params != undefined){
            return {
                headerRight: <ShareAppButton shareConfig={{
                    url: state.params.websiteURL,
                    subject: "All Recipes Made Easy Android App"
                }}/>
            }
        }

    };

Hey all, I have this.props.imageUrl defined and I'd like to do
static navigationOptions = ({navigation}) => ({
title: 'Newsfeed',
headerLeft: (
<TouchableWithoutFeedback onPress={() => navigation.navigate('DrawerOpen')} style={styles.userImageContainer}>

<Image style={styles.userImage} source={{ imageUrl }} resizeMode="cover" />

)
})

I can't seem to do so via @sachiwak's approach or @rafaelcorreiapoli's. Any help would be greatly appreciated :)

@danstepanov  I think this will not be good solution but, It will work.   define a variable outside class as var imageURL = "";   inside class
       imageURL= this.props.imageUrl ;
}```

After this it will be easy to use in

static navigationOptions = ({navigation}) => ({
title: 'Newsfeed',
headerLeft: (
<TouchableWithoutFeedback onPress={() => navigation.navigate('DrawerOpen')} style={styles.userImageContainer}>

<Image style={styles.userImage} source={{ imageURL  }} resizeMode="cover" />

)
})

@sachinwak I was actually just able to do it! I'm using GraphQL and React-Apollo to get this particular prop so I needed to make sure it was there first ;) Probably not the most elegant solution but it works!
componentWillReceiveProps() {
    if (this.props.viewer && !this.props.navigation.state.params) {
      this.props.navigation.setParams({imageUrl: this.props.viewer.imageUrl});
    }
  }

static navigationOptions = ({navigation}) => ({
    title: 'Newsfeed',
    headerLeft: (
      <TouchableWithoutFeedback onPress={() => navigation.navigate('DrawerOpen')} style={styles.userImageContainer}>
        <View style={styles.userImageBackground}>
          {navigation.state.params ? <Image style={styles.userImage} source={{ uri: navigation.state.params.imageUrl }} resizeMode="cover" /> : <Image style={styles.userImage} source={{ uri:'https://pbs.twimg.com/profile_images/861972324328890373/89CXofdV_400x400.jpg' }} resizeMode="cover" />}
        </View>
      </TouchableWithoutFeedback>
    )
})

This is how I solved it (react-navigation 3.0):
static navigationOptions = ({ navigation }) => ({
  title: navigation.state.params.title
});

All these hacks are no working anymore with newer react/react navigations versions.
Why having something like "navigation.getParent().props" is so complex?

This works for me:
`
componentDidMount() {
mapPropsToNavigationRouteParams(this.props, null, props => ({
myComponentProp: props.myComponentProp,
}));
}
componentDidUpdate(prevProps) {
mapPropsToNavigationRouteParams(this.props, prevProps, props => ({
myComponentProp: props.myComponentProp,
}));
}
static navigationOptions = ({navigation}) => {
const {params} = navigation.state;
const myComponentProp = params ? params.myComponentProp : null;
}
`
`
export function mapPropsToNavigationRouteParams(
props,
prevProps,
getPropsToMap,
) {
if (!props) return;
const propsToMap = getPropsToMap(props);
if (
!prevProps ||
JSON.stringify(getPropsToMap(prevProps)) !== JSON.stringify(propsToMap)
) {
props.navigation.setParams(getPropsToMap(props));
}
}
`

I solved using the new React Context API... even if you are required to replace the header with your custom header.

I solved using the new React Context API... even if you are required to replace the header with your custom header component.

Would you be willing to share your solution?

Of course
static navigationOptions = function(props) {
    return {
      headerTitle: () => <StoreContext.Consumer>{ store => (<Observer>{() => (<HeaderTitle title={store.uiStore.selectedGallery.title} />)}</Observer>)}</StoreContext.Consumer>
    }
}

Note that I’m using mobx... but I think the solution is almost the same for many other app state managers.

if(state.params != undefined){
return {
headerRight: <ShareAppButton shareConfig={{
url: state.params.websiteURL,
subject: "All Recipes Made Easy Android App"
}}/>
}
}

great, man! this works for me

I always get undefined, I want to update the badge Counter based on a prop value
here is what I am doing
componentDidMount(){
this.props.navigation.setParams({
x: this.props.numberOfUnreadNotifications
})
}
static navigationOptions = ({navigation}) => ({
tabBarIcon: ({ tintColor }) => {
return (
    <IconWithBadge name='bell' type='font-awesome' color={tintColor} badgeCount={navigation.state.params.x} size={24} />
  )
}

})


Allow entry_point in WASM compile

Problem
As a Developer
I would like to specify entry_point as a compilation option
so that the default noir-source-resolver could be used on NodeJS
Proposed solution
Allow entry_point parameter to compilation options.
Alternatives considered
Relying on specifying source resolver each time allows resolving sources from different locations.
Additional context
No response

We could also consider a #[entry_point] directive to specify this in the source code if applicable


HotKeys

Add Boolean parameters in widget constructor that ignore the Hotkey creation for that widget

Can you explain the use case more clearly? I want to make sure I understand.
Also, why does this need be a parameter in the constructor vs. a property? Adding more and more parameters to constructors doesn't scale.

I use buttons to make a Menu. Using the first Upper case letter can cause the same letter will be used for different buttons,  we can avoid the problem ignoring the creation of the hot key for some widget.

In my case, I created a widget called HLButtonGroup that create the menu and assign the hot keys

Can be a property. I need to verify the hotkey creation to be sure, but a property may required a false default changing the behavior of previous developed applications. With a constructor only need additional constructor for new code and old code can behave as is now.

Gotcha. FWIW Termanal.Gui is currently inconsistent on how hot keys are specified. MenuBar uses _ as an indicator an Button uses first upper case character. I've opened #456 to track fixing this.


DEP: Remove usage of numpy.compat

Reference issue

#13880
What does this implement/fix?

Removes the usage of numpy.compat library and uses str.encode('latin1') and bytes.decode('latin1') functions instead.
Additional information

I tried to trace the type of variables that were passed to numpy.compat.asstr and numpy.compat.asbytes functions and applied str.encode('latin1') and bytes.decode('latin1') functions instead on suitable types. The build passes all the tests.

Hey @peterbell10 @tylerjereddy! Can you please help me understand why these 3 checks are failing?

Thanks @NamamiShanker, merged.


Comments for extension methods are not showing [haxe]

I've installed the latest FD 5.3 and am using Haxe. I just created a new project and created some static extension methods.
/**
	 * Checks if the array contains the given value.
	 *
	 * @param array			The input array. Can be null.
	 * @param searchTerm	What to find within the input array
	 * @param startAt		Which index to start searching at?
	 *
	 * @author Zac Devon
	 */
	static public function contains<T>(array:Array<T>, searchTerm:T, startAt:Int = 0):Bool {
		if (array == null){
			return false;
		}
		return array.indexOf(searchTerm, startAt) > -1;
	}

But when I try to use it like myArray.contains() the intellisense tip comes up without any comments. I think this is a missing feature.

When I use it normally like Arrays.contains, the tip shows up fine.

I'll check it tomorrow

If I'm not wrong extension methods information comes from the compiler service, maybe it's not providing the description in this case? of course it could be that we miss displaying it too.

Excellent. Thank you for this quick fix. Awaiting the next build eagerly.

You can download development builds here:
http://flashdevelop.org/downloads/builds/


Open Preview: support multi selection

Steps to Reproduce:

select multiple markdown files in the explorer
pick "Open Preview"

=> only one preview opens, should open one for each file selected

Duplicate of #42583


Typos in this script

$SnapshotName should be $snapshotName
one of the hyphens is actually a dash character, so there are confusing error messages. Can't recall which one was a dash; eventually fixed by retyping.
Would be nice to have someone run/test the script in this doc to fix these issues.

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

ID: 07bf8ea7-91db-de43-acf1-af16543971fd
Version Independent ID: 22c2d984-0d21-b8f8-905a-dd173c171f86
Content: Azure PowerShell Script Sample -  Export/Copy snapshot as VHD to a storage account in different region
Content Source: articles/virtual-machines/scripts/virtual-machines-windows-powershell-sample-copy-snapshot-to-storage-account.md
Service: virtual-machines-windows
GitHub Login: @ramankumarlive
Microsoft Alias: ramankum

I think part the problem was also some weird pseudo-space characters that were in the script when I did the copy/paste. I had to delete a few spaces, fix the dash, fix the case issues, and then it started working.

@eraoul Thank you for the valuable feedback,we are investigating the issue.

@eraoul what errors are you seeing? I copied the script as is into PowerShell and did not run into any issues.

For one, the casing is wrong:
#Provide the snapshot name $snapshotName = "yourSnapshotName"
Later the script refers to $SnapshotName instead, so it crashes.
I also had tons of "unrecognized character" issues with things like
pseudo-spaces and a hyphen that was really a dash; I had to delete
characters and re-type in order to make it work.
On Mon, Jul 23, 2018 at 10:59 AM, Micah<EMAIL_ADDRESS>wrote:

@eraoul https://github.com/eraoul what errors are you seeing? I copied
the script as is into PowerShell and did not run into any issues.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/azure-docs/issues/12180#issuecomment-407146959,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABBIPvUVe3V6CR-pzXmWQLCBqrUbkmgzks5uJg7lgaJpZM4VaLl5
.

I can fix the casing however I am not seeing any issues with the characters. I pasted it into my PowerShell and ISE session and did not see any complaints about spaces or dashes.
@ramankumarlive can you take a look?

Hmmm. The only difference I can see is that I pasted it into Sublime Text
(on Windows) and then edited the file and ran the script from powershell; I
didn't paste it directly into the terminal.
On Mon, Jul 23, 2018 at 12:18 PM, Micah<EMAIL_ADDRESS>wrote:

I can fix the casing however I am not seeing any issues with the
characters. I pasted it into my PowerShell and ISE session and did not see
any complaints about spaces or dashes.
@ramankumarlive https://github.com/ramankumarlive can you take a look?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/azure-docs/issues/12180#issuecomment-407170542,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABBIPo2-GiNqEaBrTVC2BYumIpk_D3-2ks5uJiFogaJpZM4VaLl5
.

@eraoul these are designed to run in PowerShell. So I generally just open then directly in a PowerShell session. I tried opening in notepad and saving as a .ps1 but seems to run fine as well.

OK, maybe I had bad luck :)  FWIW though, you need to edit the connection
strings up top, so it doesn't make sense to copy/paste into anything other
than an editable script, does it?
On Mon, Jul 23, 2018 at 12:30 PM, Micah<EMAIL_ADDRESS>wrote:

@eraoul https://github.com/eraoul these are designed to run in
PowerShell. So I generally just open then directly in a PowerShell session.
I tried opening in notepad and saving as a .ps1 but seems to run fine as
well.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/azure-docs/issues/12180#issuecomment-407173890,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABBIPg1JRvI4H-or-mWfmtZfnyQvap7yks5uJiRHgaJpZM4VaLl5
.

Correct. I would assume most people would put the script into notepad or PowerShell ISE to edit it but obviously there are other editors out there.
Possibly something else we can mention in the doc to be more clear. I will still let @ramankumarlive take a look and see how we can make it better :)


Improve Javadoc for getSchema and remove deprecation

Describe the new feature you'd like
Improved Javadoc for all schema related methods (at least in Graph and Store). Removal of deprecated annotation which was previously added as the getSchema method cannot be removed and so should not be marked as deprecated - see comment in #2791.
Why do you want this feature?
The getSchema and getOriginalSchema methods have different purposes. The Javadoc for these and methods which call them could be made clearer.

Closed by https://github.com/gchq/Gaffer/pull/2883


Use Celery for background tasks

Jarbas is starting to have a kind of overhead in terms of background tasks — currently ran manually or via cronjob:

python manage.py reimbursements: to load reimbursements.xz generated by Rosie
python manage.py irregularities:  to load suspicions.xz generated by Rosie
python manage.py receipts: to check if the expected receipt URL existis
python manage.py tweets: to check for @RosieDaSerenata tweets

These tasks would be better handled by Celery IMHO

After talking to @davinirjr I'm back to update this issue:

python manage.py tweets is very quick script and can be managed (by now) via cron IMHO
python manage.py receipts is slow not because of our infra structure, but because it has to pause from time to time to avoid being blocked by the Chamber of Deputies servers — IMHO there's no problem in keeping that in cron too

The problem real bottleneck is the pipeline python manage.py reimbursements and python manage.py suspicions (former irregularities) — today this is how it works

Manually run Rosie
Use scp to upload the CSV to Jarbas server
Use ssh to run the first command (reimbursements)
Wait until eternity
Use ssh to run the second command (suspicions )
Wait until eternity again

We have to wait until eternity because each line of each CSV generates two return trips to the database: first check if the record exists, then there is a create if it's new data or update if it's existing data. We can't do bulk_* because we use django-simple-history to keep track of changes in reimbursement data (something the Chamber does not, or at least publicly does not). What I mean is that, for example, if a congressperson gives back the money from a given reimbursement the Chamber's API simply exclude any data related to this reimbursement from its API.
However using Celery can turn this double eternity waiting way faster. We read the CSV and delay the real execution. This way the solution @davinirjr suggested is as follow:

At the end of Rosie  process she can send a HTTP request to an authenticated Jarbas API for each CSV line (maybe combining reimbursements and suspicions data)
With Celery Jarbas can quickly respond to these requests delaying the execution of this tasks

That way we completely get rid of the manual scp, ssh steps and of any waiting at all in Jarbas. Rosie will get a bit slower at the end if user opts to send data to Jarbas, but as her processes takes more 1 hour the impact might not that huge in terms of UX.
Ideas @jtemporal @lipemorais @irio @anaschwendler?

Keep in mind that as Rosie send data to Jarbas, it will be just data transfer (over the wire), and we can (and should) GZIP it. Rosie doesn't need to (and shoudn't) wait Jarbas commit on database.
We achieve this by implementing worker queue (with Jarbas in front of it for - at least, a thin layer of - security).
I'll love to get some video or audio with you, to explain it in details. @cuducos and @jtemporal already have my contact on Telegram. Ping me if you'd like too.

@davinirjr Are you working this? If so, I could help on something needed...

Nope, @decko.
You can go for it, just align with @cuducos.

Closed - importations doesn't take so long anymore after #316


Node: Add ZUNIONSTORE command

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Closing as https://github.com/valkey-io/valkey-glide/pull/2145 took its place.


How to resume training?

I set the --resume-id and it basically started over. Is there something else I need to do? Any help would be appreciated! :)

nevermind! I figured it out! lol


Add compat features for masonry and subgrid

This is a follow up to https://github.com/web-platform-dx/feature-set/pull/78. It adds a group for masonry and adds compat data for both it and subgrid.
A natural follow up to this would be to introduce a structured way of describing the relationship between these features (i.e., that "classical" grid, subgrid, and masonry are each members of a common omnibus grid group).
cc: @captainbrosset

an alternative to version numbers might be years - e.g. "grid-2022" would refer to CSS Grid as would have been understood in 2022 (or whatever years makes this least ambiguous); when in 202X, most people would understand CSS Grid to include masonry and subgrid (but doesn't include the new fancy supergrid and rotary extensions), we would coin a new grid-202x name?
(that would imply we wouldn't coin the "parent" feature until 202x, which may or may not work well)

I also agree we'll need a parent feature, but I don't really think it matters. At least now, it's a pointless feature to give a name or list on caniuse.com. At some point in the future all of the Grid features might make sense to call just "Grid", but not now.
I think this is a case of how we're going to evolve the feature hierarchy over time. Perhaps right it should be:

future-grid-group (hidden)

grid
masonry
subgrid

And eventually it will be:

grid

classic-grid (hidden)
masonry
subgrid

Thanks for the reviews, everyone!
Three comments, one from each of you, ties something interesting together:

I can't come up with another term for the parent group. It feels weird to invent something new

that would imply we wouldn't coin the "parent" feature until 202x, which may or may not work well

it's a pointless feature to give a name or list on caniuse.com

I think these three comments share a common theme: some groups-of-groups are going to feel artificial because they don't (yet) describe something immediately relevant to web developers. Some groups of groups won't have that feeling, but the ones that do are a problem for us.
This suggests a few things to me:

We could distinguish between descriptive groups, which are recognizable by web developers (whether flat, like subgrid, or nested, perhaps Web Components), and groups that don't really exist except to the extent that other features cast a group-shaped shadow (the grid super group). Rather than proceed immediately with a grid super group, I may continue to fill out non-shadow groups first (with the expectation that we'll soon encounter a group that makes for a good test case). Expect more PRs.

We should ask consumers like MDN and caniuse what they make of such a distinction. My hypothesis is that the shadow groups have some utility to consumers like MDN and caniuse (e.g., if I'm writing a grid overview, it might be nice to have a high-level table to break out support for classical grid, subgrid, and masonry). But they might not be interested in directly exposing such groups to readers (e.g., a single negative compat indicator for all grid-related features). If that hypothesis is correct, then they'll need a way to tell the two apart. I've opened https://github.com/web-platform-dx/feature-set/issues/92 to track this.

Naming things is hard (and I consider versioning a subset of naming). Far-future grid-with-everything requires us to prognosticate about web developers' mental model of web technologies years from now. I don't know about you, but I'm bad at predicting the future! By the time we hit 1.0, we should have a mechanism to help consumers of this data gracefully follow the inevitable renames and changes. I've opened https://github.com/web-platform-dx/feature-set/issues/91 to track this idea.

we should have a mechanism to help consumers of this data gracefully follow the inevitable renames and changes

Totally agree with this.


Bitcoin private key Recovery

Hello,
please I need your help recovering my uncompressed Bitcoin private key which has 10 characters missing. I was wondering if you could help me write a python or any other code that will bruteforce the 10 missing characters in a fast loop like the image below and check the balance of the private key.

In the end if I find the correct private key I will give you some BTC.
let's talk on telegram
https://t.me/Huntarh
or email
<EMAIL_ADDRESS>

Hello, I texted you on Telegram.

please share the program in windows


GitHub Action to run Tests on Mac

My work today in #649 made me think that a useful start for the whole discussion in #497 could be a GitHub Action to run Tests on Mac.
Perhaps this could be combined with #695.
@abrousseau001 or @stevenodb in case this interests you?

Mac support was kind of broken for a long time anyway, it never worked on ARM M1, and originally only worked on old x86 Macs, but in (upcoming, on main as of today, but not yet released) 3.1.0 with the merge of #771 which @TheKnowles has contributed (which just got merged as part of #772) even that is now broken.
Working on this issue for CI coverage on Mac will probably only make sense after #296...

I think once the strategy going forward for mac support is set @vorburger. I can look at making the contribution. My biggest issue was that no matter the path for mac, it never felt first party (even back in the days I contributed built mac binaries). If MariaDB started to provide them, or even having a trusted third-party like many open-source projects, then we would be better off.
Containers are an option, but I feel like we are creating a larger problem with the original goal of having minimal dependencies to run MariaDB. Development changes and so do goals, but the constrained environment for my previous use case wouldn't have access to containers.

Adam

Let's use #497 re. binaries, and use this issue about adding test coverage on Mac via a GitHub Action to run Tests on Mac. Using https://github.com/ankane/setup-mariadb and https://github.com/MariaDB4j/MariaDB4j#how-using-existing-native-mariadb-binaries, perhaps with some https://github.com/MariaDB4j/MariaDB4j/issues/699#issuecomment-1465263357 from @cverges-medallia sprinkled over it could be a way forward for that, and while I personally won't work on this, I certainly would review any PRs which does that (perhaps best building towards that with smaller PRs).

MariaDB started to provide them, or even having a trusted third-party like many open-source projects

Yeah, if only https://mariadb.org/download had them... but perhaps they do not, because Homebrew has - I don't know.
PS: If you use MariaDB4j professionally, please consider  💸 support on OpenCollective, via GitHub Sponsoring or through a Tidelift subscription to ensure active maintenance of this project used by hundreds, since 2011! 🫶_


add logout v2 for sso

What type of PR is this?
What this PR does / why we need it:

Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:

support sms-code login


Replace enum with protocol

This refactor is an attempt to solve the problem of the following code:
enum ReporterType {
    case JSON
    case PMD
    case Plain
    case Xcode
   }

The main issue with this code is that it is an enum, instead of four reporters implementing the Reporting protocol. If we were to add a new reporter, there would be parts of the software which would give errors(Like the OutputCoordinator class). Also if you have 4 independent reporters you can work on two different reporters in parallel, or not have merge conflicts. Decoupling things is generally good
The fact that this is an enum not a polymorphic protocol causes issues in different parts of the code.
For example the OutputCoordinator class, is forced to do something like this:
 for reporter in reporters {
            switch reporter.type {
            case .JSON:  coordinator = JSONCoordinator()
            case .PMD:   coordinator = PMDCoordinator()
            case .Plain: coordinator = PLAINCoordinator()
            case .Xcode: coordinator = XcodeCoordinator()
            }
            let path = (filePath as NSString).stringByAppendingPathComponent(reporter.fileName)
            coordinator.writeViolations(violations, atPath: path)
        }

But after this refactor we can just ask the reporter for it's coordinator because each reporter implements this method:
      for reporter in reporters {
            let path = (filePath as NSString).stringByAppendingPathComponent(reporter.fileName)
            reporter.coordinator().writeViolations(violations, atPath: path)
        }

This lends itself to further refactoring because it breaks demeter's law but it's still better.
Another example where the enum shows it's disadvantages is here:
  func defaultFileName() -> String {
-        if self == .Xcode { return "" }
         return "taylor_report" + "." + fileExtension()
     }

This if check is a hack, that we have to check for a specific type. As other types are added, more if checks are needed. Contrast this with after the refactor:
struct XcodeReporter: Reporting {
    func defaultFileName()-> String {
        return ""
    }
}
struct JSONReporter: Reporting {
    func defaultFileName()-> String {
        return  "taylor_report" + "." + fileExtension()
    }
}

Another example where the enum shows it's shortcomings is the fileExtension method:
    func fileExtension() -> String {
        switch self {
        case .JSON: return "json"
        case .PMD: return "pmd"
        case .Plain: return "txt"
        case .Xcode: return ""
        }
    }
    ```

We can define a method in the protocol, and let each reporter tell us it's fileExtension.
```language-Swift
protocol Reporting {
func fileExtension()-> String
}

Another good outcome of using polymorphism. Code like this from the tests:
            let reporter = Reporter(type: .JSON, fileName: ReporterType.JSON.defaultFileName())

Could eventually  be converted to this:
            let reporter = JSONReporter()

This is not the case right now.
The last fix, is actually not connected this the enum. Instead of having two inits there
    init(type : ReporterType, fileName : String) {
        self.type = type
        self.fileName = fileName
    }

    init (type : ReporterType) {
        self.init(type: type, fileName:type.defaultFileName())
    }

They can be reduced to a single init with an optional paramter:
    init(type : String, fileName : String? = nil) {
        self.concreteReporter = reporterWithName(type)
        guard let fileName = fileName else {
            self.fileName = self.concreteReporter.defaultFileName()
            return
        }
        self.fileName  = fileName
    }

It looks fine. Thank you!


keeps crashing

everytime i try to play a song it says " app crashed - waiting for file changes before starting..."
can u help? thx

Give more details. Show the entire error log

now it shows this:
(node:2342) UnhandledPromiseRejectionWarning: Error: Could not find player config
at exports.getBasicInfo (/Users/oli/whatsapp-music-bot/node_modules/ytdl-core/lib/info.js:59:13)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at async Object.exports. [as getBasicInfo] (/Users/oli/whatsapp-music-bot/node_modules/ytdl-core/lib/info.js:296:18)
at async exports.getFullInfo (/Users/oli/whatsapp-music-bot/node_modules/ytdl-core/lib/info.js:187:14)
at async Object.exports. [as getFullInfo] (/Users/oli/whatsapp-music-bot/node_modules/ytdl-core/lib/info.js:296:18)
(node:2342) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:2342) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.


Reading and Writing Separation in Storage .

We need separate reading and writing in storage to improve skywalking oap receive performance
Scene sample : I use ES as storage, In oap server sider, I have 3 receiver and 2 aggregator, the total QPS is about 2k, many agent collect info is neglect. There’s many “No Peer” and “VirtualNode” info in the trace . Then I close all aggregator, the QPS can rise to 6k which is about three times than before. The main reason is aggregate needs many statistic count by ES. Reading influences the writing ability of ES.
So if separate reading and writing , it will have great performance improvement. ES support reading and writing divid, but skywalking aggregator doesn’t support reading and writing divid( there’s only one storage url config)

The label is backend \ improment

I totally lost about what you are saying. Very confused. There isn't a performance difference from the two ways of deployments, even the aggregation/receiver separated deployment has better performance from our tests.

I totally lost about what you are saying. Very confused. There isn't a performance difference from the two ways of deployments, even the aggregation/receiver separated deployment has better performance from our tests.

The two ways of deployments have almost the same performance ,it's right. My question and  requirement is different. We need Skywalking have the ablility to  config different storage url  which one is read and one is write ,to impove the storage performance  .

Please do not simply regard read as read. Count  \sum  and  some other count functions cosumes many resource

Repeat again as  my first post content:
Scene sample : I use ES as storage, In oap server sider, I have 3 receiver and 2 aggregator, the total QPS is about 2k, many agent collect info is neglect. There’s many “No Peer” and “VirtualNode” info in the trace . Then I close all aggregator, the QPS can rise to 6k which is about three times than before.

Still don't understand, why SkyWalking needs to worry about your private usage. If you don't provide real cases related to SkyWalking itself. There is no point we continue here.

Repeat again as my first post content:
Scene sample : I use ES as storage, In oap server sider, I have 3 receiver and 2 aggregator, the total QPS is about 2k, many agent collect info is neglect. There’s many “No Peer” and “VirtualNode” info in the trace . Then I close all aggregator, the QPS can rise to 6k which is about three times than before. The agent side maintain the same before and after the server side adjustment.

I know your description, but so what? If you think mixed role deployment fits you better. Just use it.

I know your description, but so what? If you think mixed role deployment fits you better. Just use it.

No ,you misunderstanding my meaning,it'st not mix or seperate deployment problem. It's about skywalking should support reading writing storage divided by config. The aggregate role also have read and write action, aggregate role should have two storage config property row, one is for read (statistic),another for write( the statistic result).  In ES  reading writing seperation is implement by  primary node and copy node ,it cant't write data to copy node .

I know your description, but so what? If you think mixed role deployment fits you better. Just use it.

In my cases, i shift the skywalking performance three times by  stoping the aggregate node ,only run the receive node . Why there has so large performance improvement,because the aggregate action influence  ES writeing ability.

I shift the skywalking performance three times by stoping the aggregate node ,But aggregate  ability is needed

We don't take the responsibility of explaning the codes. You should read the codes by yourself.


Shutdown (and fail) existing requests?

Feature Request
Is there a way to shutdown and either immediately fail all pending requests or wait some period of time and then fail them?
I've looked at Graceful Shutdown, and as far as I can tell there is no timeout.
Motivation
The use case would be if the process receives a panic or a kill signal (due to a panic or something). Right now, the server just goes away and the gRPC clients wait until they receive a timeout (which may take a long time due if the requests were expected to take a long time to return). Failing fast would be much better.
Proposal
This may be covered by just documenting (and/or extending) the graceful shutdown mechanism. But, it isn't clear exactly what "graceful shutdown" means.

Right now, the server just goes away and the gRPC clients wait until they receive a timeout

If you drop the server, I'd expect all open connections to be closed and all in-flight requests to fail with an HTTP/2 reset code (that should result in an error response).
Is the issue that the client buffers requests when it can't connect to the service?


add configuration for setting feature gates

What type of PR is this?
/kind feature

What this PR does / why we need it:
Allow for feature gates in the configuration API
Which issue(s) this PR fixes:

Fixes #3804
Special notes for your reviewer:
Does this PR introduce a user-facing change?

User can featureGate in the configuration API.

/release-note-edit
Support `.featureGates` field in the configuration API to enable and disable the Kueue features


fix(type): allow for intellisense

Description
Allows for type hints in nuxt.config.ts, see https://github.com/adenvt/nupolyon/issues/56#issuecomment-1674867206.
Linked Issues
n/a
Additional context
n/a

Nice :+1:


SearchClearIndex task

In a fully consistent system, "clearing" an index shouldn't be required. Every change in the CMS is reflected in an incremental search update. And a full reindex will update every record the CMS knows about.
The problem is if you have removed records from the CMS through other means (e.g. restoring an older snapshot, or raw SQL). In this case, a reindex won't remove this index entry.
I think we should allow easy clearing of a specific index, as a separate action from reindex. Bonus points for having a clear=1 in the existing SearchReindex task though :D

Yeah, interesting. I'll see how many of these services allow an all-inclusive selection of documents (i.e. to get all the IDs first). Otherwise, we'll have to persist the search document ID to the dataobject, which feels a bit fragile. Also would raise questions about how to deal with non-dataobject documents.
Although I suppose "delete index", "create index" is more efficient.

I'll see how many of these services allow an all-inclusive selection of documents

All of them? It's a search engine ;) The problem is that you'd be querying every single record in order to get the document IDs. You can limit search fields to just the identifier, but you'd still need to paginate through the whole data set. So at least in App Search, this won't be a cheap operation.

Although I suppose "delete index", "create index" is more efficient.

"Clear index" isn't equivalent to "delete index" though. At least in App Search, there's configuration and analytics associated to an "engine" (they don't call it index I think). So unless you also take care to retain those and replicate it onto a new engine, you'd be causing data loss in App Search with this approach.

In AppSeach, this will be a big problem. The maximum documents they'll give you per page is 100, and the maximum number of IDs in the deleteDocuments request is also 100.
Would be fun to orchestrate with concurrency, as well, because ostensibly you'd have a query for a page of 100, and a subsequent delete for all those IDs. You'd then throw out several more request for 100 on page 2, 3, etc.
Seems like there could be a couple race conditions:

A selection request returns IDs that no longer exist
A deletion request is run for IDs that have already been deleted.

None of this is fatal, but it would severely handicap performance.

This task has been re-written now. Previously there was a 'bug' where documents that were indexed but not properly removed from the index would get 'stuck' in engines, especially Elastic App Search as there's no way we can tell whether the deletion request was successful or not (the boolean true/false returned just means 'this has been queued for removal').
As part of https://github.com/silverstripe/silverstripe-search-service/pull/55, the ClearIndexJob now just loops over all documents, requests a batch of max_batch_size, removes them all, and continues until complete. This gets around lots of weird edge cases, and shared state between the CMS and the search engine index (previously, you'd often get complaints from the job because it didn't think it had finished).
Closing this issue as a result.


WIP: Persistent Volume Claim

From CI DS templates.
There are some rules for storageClassName which we may or may not want to keep.
There are also selector, which we may want to support.

there is a global available for the storageClassName. I think it could be included in the template


Add logging capabilities to the cli core and plugins

Hey, sorry I disappeared from the repo for a bit - what's next for this one?

I havent looked at this in a while now. I just linked https://github.com/aspect-build/aspect-cli/issues/94 as this was the issue related to this PR I think. If I recall correctly I had it working but I was not sure it satisfied what we actually wanted in a logger. As in the way that it was used / implemented. We had several discussions where we talked about it but it was hard to get a read on what we actually wanted to do (everyone had a different opinion). There were also a few things that I needed to look into still in order to see if we could use them for our logging purposes

This should go in upstream in silo


contentElement settings option?

Hi,
while debugging strange bug in my application, i've stumbled upon this piece of code
    // unwrap content
    if (!this.settings.contentElement) {
      while(child = scrollEl.childNodes[0]) {
        element.insertBefore(child, scrollEl);
      }
      element.removeChild(scrollEl);
      this.scrollEl = null;
    }

I'd tried to find any reference for contentElement but found none.
Am i missing something or there should be check for wrapContent?

@albertogasparin Done. Or should i also run prepublish and commit results?

Thanks a lot for the PR. I merged it and published a new version with the fix.


Screenshots for App Store and TestFlight

I need to create an app in the Apple Developer portal for StraboSpot 2 and need to include screenshots.  We think it would be better to have screenshots with data on them and other functionalities geologist want to see when eventually downloading from the store.

Sure I can do that by the end of the day

I uploaded the screenshots and description info to make the TestFlight version. I don't think we can change them.


Issue - Embedded Data Models failing to POST

Hi,
Been using your plugin lately. Faced some issues when I tried to POST a Model that has Embedded Models inside it.
{
  "error": {
    "name": "ValidationError",
    "status": 422,
    "message": "The `Option` instance is not valid. Details: `content` is invalid: `updatedAt` can't be blank (value: undefined).",
    "statusCode": 422,
    "details": {
      "context": "Option",
      "codes": {
        "content": [
          "invalid"
        ]
      },
      "messages": {
        "content": [
          "is invalid: `updatedAt` can't be blank"
        ]
      }
    },
    "stack": "ValidationError: The `Option` instance is not valid. Details: `content` is invalid: `updatedAt` can't be blank (value: undefined).\n    at P:\\testproject\\server_workbench\\testproject\\node_modules\\loopback-datasource-juggler\\lib\\dao.js:264:12\n    at ModelConstructor.<anonymous> (P:\\testproject\\server_workbench\\testproject\\node_modules\\loopback-datasource-juggler\\lib\\validations.js:472:11)\n    at ModelConstructor.next (P:\\testproject\\server_workbench\\testproject\\node_modules\\loopback-datasource-juggler\\lib\\hooks.js:75:12)\n    at ModelConstructor.<anonymous> (P:\\testproject\\server_workbench\\testproject\\node_modules\\loopback-datasource-juggler\\lib\\validations.js:469:23)\n    at ModelConstructor.trigger (P:\\testproject\\server_workbench\\testproject\\node_modules\\loopback-datasource-juggler\\lib\\hooks.js:65:12)\n    at ModelConstructor.Validatable.isValid (P:\\testproject\\server_workbench\\testproject\\node_modules\\loopback-datasource-juggler\\lib\\validations.js:435:8)\n    at P:\\testproject\\server_workbench\\testproject\\node_modules\\loopback-datasource-juggler\\lib\\dao.js:260:9\n    at P:\\testproject\\server_workbench\\testproject\\node_modules\\loopback-datasource-juggler\\lib\\observer.js:106:23\n    at P:\\testproject\\server_workbench\\testproject\\node_modules\\loopback-datasource-juggler\\node_modules\\async\\lib\\async.js:189:25\n    at event (P:\\testproject\\server_workbench\\testproject\\node_modules\\loopback-ds-timestamp-mixin\\index.js:29:5)"
  }
}

Model Info
Option {
id (number, optional),
optionContent (Content, optional),
createdAt (string),
updatedAt (string)
}
Content {
data (string),
type (string),
id (number, optional),
createdAt (string),
updatedAt (string)
}

Model's JSON in Loopback:
{
	"name": "Option",
	"base": "PersistedModel",
	"idInjection": true,
	"options": {
		"validateUpsert": true
	},
	"properties": {
	},
	"validations": [],
	"relations": {
		"content": {
			"type": "embedsOne",
			"model": "Content",
			"property": "optionContent",
			"options": {
				"validate": true,
				"forceId": true,
				"persistent": true
			}
		}
	},
	"mixins": {
		"TimeStamp": true
	},
	"acls": [],
	"methods": []
}

{
	"name": "Content",
	"base": "PersistedModel",
	"idInjection": true,
	"options": {
		"validateUpsert": true
	},
	"properties": {
		"data": {
			"type": "string",
			"required": true
		},
		"type": {
			"type": "string",
			"required": true
		}
	},
	"mixins": {
		"TimeStamp": true
	},
	"validations": [],
	"relations": {},
	"acls": [],
	"methods": []
}

Here is what I Inserted:
{
  "optionContent": {
    "data": "asdasd",
    "type": "text"
  }
}

The Bug gets Fixed If I remove Timestamp from the inner Model "Content"

@vasumahesh1 thanks for the detailed information!  what version are you running?

Also if you could try running your server with the debug information turned on during your POST to see if there's any other interesting output happening.
Something like this DEBUG='loopback-ds-timestamp-mixin' slc run

Version:
{
	"name": "schoolu",
	"version": "1.0.0",
	"main": "server/server.js",
	"scripts": {
		"pretest": "jshint ."
	},
	"dependencies": {
		"compression": "^1.0.3",
		"cors": "^2.5.2",
		"errorhandler": "^1.1.1",
		"loopback": "^2.14.0",
		"loopback-boot": "^2.6.5",
		"loopback-datasource-juggler": "^2.19.0",
		"loopback-ds-timestamp-mixin": "^2.1.1",
		"serve-favicon": "^2.0.1"
	},
	"optionalDependencies": {
		"loopback-explorer": "^1.1.0"
	},
	"devDependencies": {
		"jshint": "^2.5.6"
	},
	"repository": {
		"type": "",
		"url": ""
	},
	"description": "schoolu"
}

Okay  i'll try to run in Debug mode ...

It looks like its failing validation on the embeded object, I'll have to look into why this is happening.
For now you could set required to false for your Content model with something like this:
"mixins": {
  "TimeStamp" : {
    "required" : false
  }
}


Header collector script (maintainability)

Everything in include/ comes from upstream tarballs. But it's currently hard to check that these files match their upstream counterparts, and changing versions is cumbersome.
There should be a script that:

Wipes include/.
Downloads the right version of every tarball, and verifies its hash (the same as currently in depends).
Extracts the relevant headers to include/.

The process should be deterministic and idempotent, so that re-running it results in a clean git tree.

Generation now starts entirely from scratch (it's possible to delete all directories except for scripts)
https://github.com/laanwj/qtsowrap?tab=readme-ov-file#generation


install this on openwrt

can this be compiled and installed on openwrt?

Please refer to the documentation at https://github.com/Morhaus/dispatch-proxy/tree/master/docs.


Add Github status to PR for c2go tests and warnings

This change is

Reviewed 2 of 2 files at r2.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


which: no java in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)

Alluxio Version:v2.3.0
Describe the bug：
1.Although I specified JAVA_HOME in the conf/alluxio-env.sh file, there are still prompt messages  as shown in the title during installation.
2.I have installed different versions of java in my system, and I specified a specific version of java for alluxio, but it did not take effect.
Related logs：
Starting to monitor all remote services.
which: no java in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
--- [ OK ] The master service @ node1.bigdata is in a healthy state.
Expected behavior：
If I specify JAVA_HOME, the console should no longer display the prompt message "which: no java in...", and alluxio should use the Java version I specified
Additional context：
I modified the relevant code in the libexec/alluxio-config.sh file to solve this problem：
if [[ -z "${JAVA}" ]]; then
if [[ -n "${JAVA_HOME}" ]] && [[ -x "${JAVA_HOME}/bin/java" ]];  then
JAVA="${JAVA_HOME}/bin/java"
elif [[ -n "$(which java 2>/dev/null)" ]]; then
JAVA=$(which java)
else
echo "Error: Cannot find 'java' on path or under $JAVA_HOME/bin/."
exit 1
fi
fi

thanks for reporting this issue @ljk-1993 . Can you create a pull request here to contribute your fix back? Thanks!

/assign @ljk-1993

the new fix will show up in next 2.4.0 release. Let me know if you need this in other versions and I could help cherrypick @ljk-1993 . thanks for reporting and fixing this issue!


poetry.lock is outdated

poetry.lock is outdated and references several dependancies which specified versions aren't compatible with current python releases (for example, Ubuntu now ships Python 3.11)
I will try to update the poetry file and make a PR, but it's my first time using poetry so I don't know if I will succeed.

OK this was easy, just needed to run poetry update before poetry install


ERROR  (node:28838) when starting dev

❯ npm run dev

dev
nuxt dev

Nuxt 3.11.2 with Nitro 2.9.6                                                                                10:06:36 AM
10:06:36 AM
➜ Local:    http://localhost:3000/
➜ Network:  use --host to expose
ℹ Using default Tailwind CSS file                                                                            nuxt:tailwindcss 10:06:37 AM
➜ DevTools: press Shift + Option + D in the browser (v1.1.5)                                                                 10:06:37 AM
ℹ Tailwind Viewer: http://localhost:3000/_tailwind/                                                          nuxt:tailwindcss 10:06:37 AM
ℹ Re-optimizing dependencies because lockfile has changed                                                                     10:06:37 AM
ℹ Vite server warmed up in 2466ms                                                                                10:06:40 AM
✔ Nuxt Nitro server built in 696 ms                                                                                nitro 10:06:40 AM
ℹ Vite client warmed up in 3097ms                                                                                10:06:40 AM
ERROR  (node:28838) [DEP0040] DeprecationWarning: The punycode module is deprecated. Please use a userland alternative instead.
(Use node --trace-deprecation ... to show where the warning was created)

What's the node version in use?

I'm still using node v20.11.1. If you are using node 21, it's very likely you see such error. Please refer to https://stackoverflow.com/questions/77587325/deprecationwarning-the-punycode-module-is-deprecated


aider/prompts.py: reduce token size of prompts

get rid of nonessential information that causes the prompt to be longer than needed
main system prompt: 924 chars -> 741 chars (183 chars saved)
system reminder prompt: 1304 chars -> 1168 chars (136 chars saved)
I have been using these prompts myself for some basic tasks and as far as I can tell so far, they perform basically the same.
However, since these improvements are only marginal compared to the size of code files inserted into the prompt, feel free to discard this PR without merging.

Thanks for this!
I haven't spent a lot of time optimizing the prompt lengths as I am still experimenting a lot with various prompt strategies. But every token saved helps!


T16 Music Sync from Mic

A great improvement could be the possibility to choose T16 music sync from playback of the device (that is the actual way)  or from MIC of device (now i'm using a "microphone" app that listen to mic and play to speaker but it's very boring because if you pump up the volume it goes in larsen).
Thanks
Dario

+1
2016-01-11 16:11 GMT+01:00 Dario<EMAIL_ADDRESS>
A great improvement could be the possibility to choose T16 music sync from
playback of the device (that is the actual way) or from MIC of device (now
i'm using a "microphone" app that listen to mic and play to speaker but
it's very boring because if you pump up the volume it goes in larsen)
Thanks
Dario
—
Reply to this email directly or view it on GitHub
https://github.com/souliss/soulissapp/issues/119.

challenge accepted


Always use permanently down status

This has been in production for long time now

This has been in production for long time now


Shaky Input approach

The current state of input works, but the implementation is a little confusing because of how key press events are maintained. Essentially I have no clue if any of this will work in any language other than English.
MDN leads me to believe that i should use "event.key", which returns a string of what is being pressed.  Apparently using keyCodes is deprecated, but there is a work around that thinks of keys as positions and not values.
For now i am going to just assume that I am the only one that is going to use this whole library and just stick to English support. However, i do really wonder how input works for other languages with unique characters.

Ill admit I am very ignorant to this issue. I cannot say for certain this will work for every language, but I ended up just implementing event.key.
I really like how input ended up being handled, but if it causes any issues in the future for other languages then I will change it!


Javascript Support

Is your feature request related to a problem? Please describe.
JavaScript support is currently not available.
Describe the solution you'd like
I would like to request JavaScript support.
Describe alternatives you've considered
I have considered using alternative libraries or frameworks to achieve similar functionality in JavaScript like langchainjs and my own version. However, the Guidance library stands out due to its specific features and capabilities.

Another benefit of JS would be first-class support of js templating languages along with custom helpers instead of the limited, pythonic implementation as included in this library.
I also would encourage use of handlebars.js instead of handlebars.js.

Just made a port for the library: https://github.com/LevanKvirkvelia/salute

I like salute but its not a replacement, salute is using code to represent template control structures.
while guidance uses a custom language, which can be easily serialized.
I would still like a 1to1 (syntax) port.

We have no plans to implement a js version, but as soon as we get server support going it should be easy to call guidance from js


bardisabard hackpad 3x3

Ready to submit your project? Nice job! Hopefully you've read the submission guidelines. If not, make sure to read them first.
If you're unsure about the format, make sure to check out the Orpheuspad example and follow the format there.
If this PR isn't a submission, that's okay too! If there's anything about this PR template that seems confusing, let me know in #hackpad on the slack!

forgot firmware uf2 lol

fixed

no solder pls I want to do/try it myself

I Approve - https://github.com/hackclub/hackpad/pull/20

Good stuff, thank you @CircuitCyborg! Get your hackpad here: https://forms.hackclub.com/hackpad


COTD Data

Bring back the COTD function from the pre-rewrite

Statistics
Graph

Last time the graph was not correct for most players, gotta fix that
probably also gonna add a bool_flag on whether to include the reruns or not

command will be implemented after cooldowns are implemented to py-cord due to the enormous amounts of requests they need. Will probably need a 30s cooldown to regain atleast 20 API requests for the server.

assuming that cooldowns will be implemented before 26th, I am putting this feature into v1.6

Finished all Util functions
List of Util Functions

_get_best_rank_primary
_get_best_div_primary
_get_best_rank_primary_time
_get_best_div_primary_time
_get_best_rank_in_div_primary
_get_best_rank_overall
_get_best_div_overall
_get_best_rank_overall_time
_get_best_div_overall_time
_get_best_rank_in_div_overall
_return_cotds
_return_cotds_without_reruns
_get_num_cotds_played
_remove_unfinished_cotds
_get_average_rank_overall
_get_average_rank_overall
_get_average_div_overall
_get_average_div_primary
_get_average_div_rank_overall
_get_average_div_rank_primary
_get_list_of_ranks_overall
_get_list_of_ranks_primary

cotd data for the perfect player is done
Now need to do for player who has

Never played COTD
Never played Reruns but played actual COTD
Never played Actual COTD but played Reruns

Works on Players who have

Never played cotd
Never played reruns
Played both COTD and Reruns


chore(release): making a new release

Contains below feature PRs:

https://github.com/splunk/pytest-splunk-addon/pull/864
https://github.com/splunk/pytest-splunk-addon/pull/862
https://github.com/splunk/pytest-splunk-addon/pull/845
https://github.com/splunk/pytest-splunk-addon/pull/850
https://github.com/splunk/pytest-splunk-addon/pull/875
https://github.com/splunk/pytest-splunk-addon/pull/877

:tada: This issue has been resolved in version 5.3.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Compilation breaks if abigen is too new

We currently use abigen to generate contract bindings for the keep-ecdsa contracts.
I recently ran into an issue where a Homebrew-installed abigen binary was used (from the ethereum brew formulae), which was generating bindings for a later version of the ethereum package we use. The method RawTransact was recently introduced in github.com/ethereum/go-ethereum v1.9.13, however we depend on v1.9.10. This produces errors while running go generate ./...:
pkg/chain/gen/abi/BondedECDSAKeepFactory.go:820:2: not enough arguments to return
pkg/chain/gen/abi/BondedECDSAKeepFactory.go:820:41: _BondedECDSAKeepFactory.contract.RawTransact undefined (type *bind.BoundContract has no field or method RawTransact)
pkg/chain/gen/abi/BondedECDSAKeepVendor.go:377:2: not enough arguments to return
pkg/chain/gen/abi/BondedECDSAKeepVendor.go:377:40: _BondedECDSAKeepVendor.contract.RawTransact undefined (type *bind.BoundContract has no field or method RawTransact)

Perhaps we can either:

Modify makefile to use $GOPATH/bin/abigen, avoiding any conflicts
Warn/error if abigen -v matches a different version

Flowdock thread context

GOPATH won't work as it's optional these days, but we can resolve it similar to how we resolve our own code generators, I think.

Sounds like @ironng ran into this as well. Here and in keep-core, changing invocations of abigen in the Makefiles to, roughly, go run github.com/ethereum/go-ethereum/cmd/abigen instead. That should run the package-specific version of abigen, I believe, as it does with the keep-common generators.

I've confronted it too, any ETA on fix?

Interesting, proposed by @Shadowfiend solution does work on clean environment. Seems like I've corrupted my previous environment by crazy senseless experiments :).


Add Wake Up configuration to LIS2DW12 driver

do me a favor and dont rebase or ammend on this PR as Im following along on my PR and need to see the smallest changes

@matthewwarnes The way we would want these set functions to work is that you read from the register as a previous value, set specific bits for the config value that you want to write to ORing the previous value and then set it back.
Something like this:
https://github.com/apache/mynewt-core/blob/master/hw/drivers/sensors/lis2dh12/src/lis2dh12.c#L563


Card preview doesn't appear when text wraps

The card preview image is set to an offscreen position when the card-link inner text wraps from 1 line to the next.

Fixed in https://github.com/im-sticky/mtg-card-seer/pull/2


Fix for API nested attrs and apiv2 Links documentation

Purpose
Partial fix for Issue #3259 to make links slightly less tricky. Mostly adds documentation, and add a _get_deep_attr function to allow for deeply nested attributes to work properly.
Changes
Documentation of APIV2 LinksFields functions
Add get_deep_attr
Add error catching when attr_tpls are added to Links fields improperly
Side Effects
None that I know of currently.

@alexschiller Build is failing. Can you look into it?

@sloria fixed, I fail at flak8

Holding on this until the JSON API work has finalized.

This is relevant again. If you merge with develop, you'll see _rapply has been moved out of this scope into the general OSF scope. The rest of the changes will be great to get merged in, though.

Actually, hold off again.

The internal API for serializing relationships has changed significantly since this PR. Closing this for now.


The radio transmits randomly on bottom or top channel.

It doesn't matter which is the main channel. It looks like it takes the one that the dual watch is currently on.

I think I've fixed it now. Let me know.
I've also noticed a problem with the high/mid/low TX power as well, there appears to be only 1dB difference between them.
I don't have have a power meter here at the moment so can't check for, just a spectrum analyser without a suitable inliine attenuator.

Nope, still transmits randomly

From the tests that I saw on youtube the power levels did not correspond to the levels set with L/M/H, on some bands more than the others, but for some the power output did not change between for example L and M.

Try now

The TX power level is adjustable, but the stored calibration values seem way off :(

A good H/M/L power setting would be something like 4W, 1W and 0.25W, which would be a much better dB ratio change, or even 4W, 0.5W and 100mW.
Currently 1dB difference is worthless/pointless.
Setting the actual output power is difficult though in practice, because as you say it's frequency dependent (very) and radio dependent, each individual radio needs it's own calibration table (which it already does have), but the user would need an RF power meter to calibrate there own radio(s).

If the radios had an ADC reading sampling the level of RF TX output, I could add auto-calibrate code into the firmware, but I don't think the radios do have that feedback measurement do they ?

No, not typically. They would have to have a transformer to tap a little bit of the output RF, rectify it to DC, and feed into an ADC. No need to add that hardware for what would be a one-time use in the factory.

A good H/M/L power setting would be something like 4W, 1W and 0.25W, which would be a much better dB ratio change, or even 4W, 0.5W and 100mW.
Currently 1dB difference is worthless/pointless.
Setting the actual output power is difficult though in practice, because as you say it's frequency dependent (very) and radio dependent, each individual radio needs it's own calibration table (which it already does have), but the user would need an RF power meter to calibrate there own radio(s).
If the radios had an ADC reading sampling the level of RF TX output, I could add auto-calibrate code into the firmware, but I don't think the radios do have that feedback measurement do they ?

I also think the 4 1 0.25 arrangement is more reasonable. does this radio have battery current feedback? i may have seen this in some code. if so, u may use current to do a auto calibrate.

It's possible to use current I spose. All I get is an ADC value, no idea on what the scale value is to convert that to say mA, though that doesn't matter.
I'll do a measurement and see what the current reading is for different output power levels (into a 50R load).

Unfortunately, the current sensor doesn't return the current being used by the radio, it only seems to return a reading of some sorts when the radio is charging from the USB port, doesn't register desk/slot-in charger current.

Unfortunately, the current sensor doesn't return the current being used by the radio, it only seems to return a reading of some sorts when the radio is charging from the USB port, doesn't register desk/slot-in charger current.

I also did some test and confrim the gBatteryCurrent is useless, :(   random wiggle from 20 to 23 during TX

I'm wondering if the ADC reading might actually be a voltage reading on the USB charge socket rather than a current reading, or something like that.

I think the adc reading was using PA14 ，tracking the circuit board to this two holds near the USB-C port ,can't figure out which one .

I have try charge it with a usb power meter.
when battery is 50% I got 5V 1A reading, gBatteryCurrent is 892±3
battery 94% 5V0.55A gBatteryCurrent is 861±3
still charging now.
I was wondering what the gBatteryCurrent  would be if I unplugged the lithium battery while the USB cable was connected, but the user manual explicitly says not to do this. . .

when the battery is fully charged  gBatteryCurrent still have 860 readings, but jumping  ,more stable when I disable batsav . maybe should rename this gBatteryCurrent to gUSBCurrent

I was wondering what the gBatteryCurrent would be if I unplugged the lithium battery while the USB cable was connected, but the user manual explicitly says not to do this. . .

Have to be careful about not having batteries installed, some designers wrongly rely on them as part of the charge/power circuit (basically as large capacitors) that smooth out voltage and current ups and downs.

But knowing the what the circuit really is around all that would totally explain it all.


Remove deleted elements from svg export

Fixes: https://github.com/excalidraw/excalidraw/issues/1019

I'd lift it to renderSceneToSvg() in renderScene.ts to align with renderScene().

✅ @dwelle

merging :fire:


gl.deleteBuffer() is never called for buffers created through buffer.createStream()

For buffers created through  buffer.createStream(), gl.deleteBuffer() is never called, so they are never cleaned up when the program exists. But they should be.
This can probably be easily fixed by adding all stream-buffers to bufferSet .

Fixed in #110

Oops, this is a separate issue.  Going to make a fix right now.


tECDSA signing: Setup of the test loop and signing executor

Refs: https://github.com/keep-network/keep-core/issues/3042
Depends on: https://github.com/keep-network/keep-core/pull/3209
Here we are setting up the tECDSA signing test loop and the tECDSA signing protocol executor, without executing the actual signing logic yet. Specific changes are summarized below.
Test loop setup
The signing loop was set up using a temporary chain mock that generates a new tbtc.SignatureRequestedEvent periodically targeting the recently created wallet. The signature request is about signing the hash of the block the event was generated at. The tbtc application node listens for the aforementioned events and decides about joining the signing process if the node controls at least one of the requested wallet's signers.
Worth mentioning that this trigger of the signing process is temporary, and ultimately, the signing process will not be initiated explicitly by the chain. Instead of that, the tbtc node will observe domain events emitted by the Bridge contract` and react to them by constructing and signing specific BTC transactions or other data required by the given use case.
Signing protocol executor setup
Once the tbtc node decides to join the given signing execution, it must set up the tECDSA signing protocol executor properly. This includes setting up the right broadcast channel and determining all the input parameters required by the tECDSA signing executor. This PR addresses those requirements within the joinSigningIfEligible function.
Additionally, we are also exposing the executor function itself.  The function is called pkg/tecdsa/signing.Execute and this PR focuses on defining its public API. The actual logic is just a stub at the moment and will be addressed in further PRs.
Next steps
This PR is just a part of the entire work regarding the tECDSA signing test loop. Please refer to the description of https://github.com/keep-network/keep-core/issues/3042 for the full roadmap and the current status of the work.

The code is ready for review. I'll undraft once https://github.com/keep-network/keep-core/pull/3209 and manual testing of this PR is done.


fix(deps): update dependency @microsoft/api-extractor to ~7.34.0

updates api-extractor version and updates tests with newer snapshots
unblocks #50  🦕

nit: unblocks rather than fix, for a PR / issue towards it. Towards #... works as well!

Thanks, I see you updated it!


ci: boards: Allow mps2_an521_ns to execute tfm tests

Reverts a quickfix which removed a "trusted-firmware-m" tag.
Allow to run tests with the given tag on mps2_an521_ns
Fixes: #62380

The logic in twister checks if there is at least a single common element between "only_tags" and tags in a test suite, hence mcuboot tag is not required


Add dialect to parse toplevel statements and packages

Currently, when using the default dialect it's not possible to include toplevel statements
// Foo.scala
def foo() = 42 // error: expected class or package

With the Sbt1 dialect, it's possible to parse toplevel statements but it's not valid to declare packages
// build.sbt
package bar // error:

It would be nice to have a third dialect that accepts both package declarations and toplevel statements. This dialect would be useful for example for Scalafmt, where we just want to format as much code as possible.

I would like to resurrect this issue. The Scala3 dialect has allowTopLevelTerms, but it forbids package statements ( see here. I'm assuming this is because allowToplevelTerms is used for the REPL, where package statements don't make sense, but it still seems curious not to allow the user some flexibility here.

It should be possible to change split this, since there is only one place this is being used:
https://github.com/scalameta/scalameta/blob/dc7320df79bb9ee8626281154fc36e8cb9cbc5cd/scalameta/parsers/shared/src/main/scala/scala/meta/internal/parsers/ScalametaParser.scala#L5088
I think it would be enough to add an additional dialect option and change to it in the code above. I don't have time to look at it currently, but I think we should be ok to merge this change.


Custom http client

Hello,
would be nice to have option for more customization.
Providing custom http client with custom transport will give option to use proxy.
Also when API limit reached custom client will prevent from making requests.
Sadly changing http client globally not an option as we do not make requests to other exchanges as well.

forked it and fixed some issues. Also I know why LinearExecutionListResponse do not work, it should be GET request not POST.
 Responses do not checked for any http errors. It will produce marshal error instead.
I have quite a few changes in code and probably will do quite a lot more in a few days. Feel free to use code from my fork (https://github.com/oneart-dev/bybit)

Thanks for your feedback!
I will try to reflect the points you raised.


Deprecated footer message

Description
Footer has old info
Expected behavior
Footer must be upgraded
Current behavior

Steps to reproduce the behavior
Scroll down to any page and see the footer.
Checklist

[ ] This issue has a significant name.
[ ] This issue has labels.
[ ] This issue has screenshots (if necessary).

branch name:
issue_348_deprecated_footer_message

Issue solved #370.


also print imported age keys

Not a huge fan of adding more output since #113 adds up to 3 lines of output. What do you think about only doing that on boot (→ when /run/secrets does not exist yet)?

Not a huge fan of adding more output since #113 adds up to 3 lines of output. What do you think about only doing that on boot (→ when /run/secrets does not exist yet)?

This does not help really, users that migrate to sops, won't reboot their machines for testing.
If we don't have this than it  quite a pain to debug if users forgot to rotate keys after updating .sops.yaml
This is also relevant if users open up issues posting their yaml files and boot logs.

What about an environment variable like SOPS_SILENT_KEY_IMPORT? I could add another one to #113 like SOPS_SILENT_CHANGE_DETECTION, then everybody can fit the behaviour to their liking

I have implemented something similar but based on the manifest instead of the environment: https://github.com/Mic92/sops-nix/pull/113/commits/6473b947edad6d112ea7747f783e7f0219197d91

I think I want to only print imported keys when an error happens. This should please all parties and requires no option. Than I can also make error messages better when gnupgHome or age.keyFile is used.


How can i make an animated menuBG?

Describe your problem here.
I want to add an animated menuBG (the bg in the menu with story mode, freeplay etc) with a spritesheet xml. How can i do this?
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No

On Lua you can't do it for main menu, freeplay and story mode

yea if u really need it, go to MainMenuState/FreeplayState in source and find 'bg = new FlxSprite()' and put these below that line,
bg.frames = Paths.getSparrowAtlas('[file name]');
bg.animation.addByPrefix('menubg', "[prefix in xml]", 24, true);
bg.animation.play('menubg');


There seems to be something wrong with the contents of the nginx.conf

nginx: [emerg] "location" directive is not allowed here in /usr/local/nginx/openadms-server/api.conf:34
nginx: configuration file /usr/local/nginx/nginx.conf test failed
Is it because the position of the following statement in the nginx.conf file is incorrect and there is an extra "}" match？
    # Include the OpenADMS Server API and HTTP status code configuration.
    include openadms-server/api.conf;
    include openadms-server/status.conf;
**}**

}

Thank you for reporting, has been fixed.


Demo app is not working

Readme says: http://openduty.herokuapp.com , log in with root/toor
But those credentials are not working.

+1
I also just had the same problem

Me three

Me 4, no solutions yet?!

Is there any way we can help getting this back up?

I was going to demo OpenDuty but based on what I see here I will not waste my time.

Pretty bad when you get a nice article written about a project and can't see the demo because it isn't working. I've been wanting to show this to co-workers for weeks now and feel I can't because the demo is not working. WTH?

Bump

Still no demo :(

still no demo?
What's peopleeeeeeee!??

It looks like people here are sleeping well. :P

Fixing it now. Thanks for the patience, have been occupied a lot lately.

Fixed. Closing


Confusing behaviour after monitoring is enabled

General information

OS: Red Hat Enterprise Linux release 8.1 (Ootpa)
Hypervisor: KVM
Did you run crc setup before starting it (Yes/No)? Yes

CRC version
crc version: 1.3.0+918756b
OpenShift version: 4.2.10 (embedded in binary)

CRC status
CRC VM:          Running
OpenShift:       Running (v4.2.10)
Disk Usage:      11.63GB of 32.2GB (Inside the CRC VM)
Cache Usage:     13.75GB
Cache Directory: /home/test/.crc/cache

CRC config

Empty output.
Host Operating System
NAME="Red Hat Enterprise Linux"
VERSION="8.1 (Ootpa)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="8.1"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Red Hat Enterprise Linux 8.1 (Ootpa)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:redhat:enterprise_linux:8.1:GA"
HOME_URL="https://www.redhat.com/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"

REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8"
REDHAT_BUGZILLA_PRODUCT_VERSION=8.1
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.1"

Steps to reproduce

crc setup
crc start -p /tmp/pull.secret -m 16000 to give the VM enough memory to allow monitoring to work, also see https://github.com/code-ready/crc/issues/810
oc login -u kubeadmin
oc scale --replicas=1 statefulset --all -n openshift-monitoring; oc scale --replicas=1 deployment --all -n openshift-monitoring based on https://code-ready.github.io/crc/#starting-monitoring-alerting-telemetry_gsg
Log in to console at https://console-openshift-console.apps-crc.testing/dashboards
Try to make sense about the health of the cluster.

Expected
https://console-openshift-console.apps-crc.testing/dashboards says "Cluster is healthy" and there are no alerts.
https://console-openshift-console.apps-crc.testing/settings/cluster/ lists Last Completed Version and the Update History as completed.
https://console-openshift-console.apps-crc.testing/settings/cluster/clusteroperators shows all cluster operators "green" with no error messages.
Actual
https://console-openshift-console.apps-crc.testing/dashboards says "Cluster is healthy" but it lists bunch of alerts:

[orange] 100% of the etcd targets are down.
[red] etcd cluster "etcd": insufficient members (0).
[red] etcd cluster "etcd": members are down (1).
[orange] Cluster has overcommitted memory resource requests for Pods and cannot tolerate node failure.
[red] machine api operator is down
[red] Cluster version operator has disappeared from Prometheus target discovery. Operator may be down or disabled, cluster will not be kept up to date and upgrades will not be possible.
[orange] Cluster has overcommitted CPU resource requests for Pods and cannot tolerate node failure.

https://console-openshift-console.apps-crc.testing/settings/cluster/ shows

Channel: stable-4.2
Last Completed Version: None
Update Status: Failing, View details

https://console-openshift-console.apps-crc.testing/settings/cluster/clusteroperators at the top shows message

Cluster update in progress. Unable to apply 4.2.10: the cluster operator monitoring has not yet successfully rolled out

However, all operators have Status listed as Available with green check mark, monitoring has Message "Successfully rolled out the stack.", machine-api has Message "-".
Overall, it is not clear what the status of the machine-api operator is and why it's reported in alert as down when in the operator list it is shown running and available, it is not clear why the cluster version operator has the "has disappeared" alert and how to fix it, and why the message speaks about cluster operator monitoring not rolled out when the monitoring operator says otherwise.
Logs
You can start crc with crc start --log-level debug to collect logs.
Please consider posting this on http://gist.github.com/ and post the link in the issue.

It is well possible that some of these are issues in OpenShift itself rather than in CRC and the environment that it sets up for OpenShift. However, it's possible that there is something about CRC or in CRC which should be done differently to remediate the problem and have the OpenShift cluster fully healthy, except maybe some alerts about there only being one node in the cluster.

https://console-openshift-console.apps-crc.testing/dashboards says "Cluster is healthy" but it lists bunch of alerts:

This is part of a known issue:

Machine api operator
Cluster version operator

is disabled for CRC as they do not provide functionality we need and would otherwise consume resources.

Thanks @gbraad for the explanation.
Is there an easy way to enable the machine API and cluster version operators if I don't worry about the resource consumption that much, similar to the ability of enabling monitoring per https://access.redhat.com/documentation/en-us/red_hat_codeready_containers/1.0/html-single/release_notes_and_known_issues/index#metrics_are_disabled_by_default ? I'd like to have that CRC-based testing cluster as close to the real OCP installation as possible, as a basis for future investiation.

@adelton Machine config operator doesn't work with single node cluster https://github.com/openshift/machine-config-operator/issues/579 and to enable the cluster version operator is fairly simple just using oc scale --replicas=1 deployment --all -n openshift-cluster-version

But @praveenkumar, wouldn't enabling the CVO have unwanted side effects? It wants to pull the cluster into a certain state ...

wouldn't enabling the CVO have unwanted side effects? It wants to pull the cluster into a certain state ...

@gbraad No, it shouldn't because @adelton already enabling the monitor operator, that what we disable, it will also bring the cluster state back to what the we change https://github.com/code-ready/snc/blob/master/snc.sh#L221-L255 here.

enable the cluster version operator is fairly simple just using oc scale --replicas=1 deployment --all -n openshift-cluster-version

Thank you. Should I expected it to appear at https://console-openshift-console.apps-crc.testing/settings/cluster/clusteroperators?
The

Cluster version operator has disappeared
alert is gone but I see https://console-openshift-console.apps-crc.testing/k8s/cluster/config.openshift.io~v1~ClusterVersion/version reporting Failing because of
Could not update deployment "openshift-machine-config-operator/etcd-quorum-guard" (383 of 433)

And in OCM, in the Cluster operators listing, I see "version" Failing, with link pointing to https://console-openshift-console.apps-crc.testing/k8s/cluster/config.openshift.io~v1~ClusterOperator/version which says 404 Not Found. Note the ClusterOperator/version, as opposed to the ClusterVersion/version URL which has some content in it.

Could not update deployment "openshift-machine-config-operator/etcd-quorum-guard" (383 of 433)

@adelton This is expected since as per CVO, we should have 3 instances of etcd to perform a quorum, for CRC this is not possible :(

Digging into it a bit more, it seems like oc scale --replicas=1 deployment --all -n openshift-machine-config-operator makes the CRC-based cluster view itself as fully healthy with no alerts, and fully updated to version 4.2.10. At least temporarily before CVO (?) raises the number of replicas back to 3.

For the record, running this (enable monitoring, and openshift-cluster-version and openshift-machine-config-operator) allows me to initiate upgrade to 4.2.13. When the upgrade process gets stuck waiti for something (insights) bumping the replicas value to 1 and after upgrade back to 0 makes the upgrade proceed up to the 88 per cent, at which point it gets stuck because of machine-config reporting

Failed to resync 4.2.10 because: timed out waiting for the condition during syncRequiredMachineConfigPools: error pool master is not ready, retrying. Status: (pool degraded: true total: 1, ready 0, updated: 0, unavailable: 1)

I've searched around but did not find definitive cause (and workaround) for the pool master is not ready error, at least for the 4.2 version of OCP.

When the upgrade process gets stuck waiti for something (insights) bumping the replicas value to 1 and after upgrade back to 0 makes the upgrade proceed up to the 88 per cent, at which point it gets stuck because of machine-config reporting

@adelton You can't perform the upgrade of the cluster using CRC since it is single node cluster and the machine config operator not going to supported for this. In real cluster upgrade happen one by one on the worker/master node and rebooting them. I think if our really want to test upgrade then CRC might not be the good choice :(

Understood. Thank you.

@praveenkumar Then I suggest that https://access.redhat.com/documentation/en-us/red_hat_codeready_containers/1.3/html-single/getting_started_guide/index (and possibly other places) should explicitly mention that CRC does not support machine-config, instead of just saying it is disabled by default. By that I had understood I could enable it if I wanted. I spent some time trying to make it work until I finally found this GitHub issue.


Update hackathon-march-2021.md

Updated with the CoC

Yes, good with moving it down on the page. I'm good just as long as it's there and people know what to do in case it's required.
Thanks for the commits.

Live: https://nf-co.re/events/2021/hackathon-march-2021#safety-information-at-the-hackathon
Rendering is a bit funky, looks like an unclosed tag somewhere. Any ideas @mashehu ?

Yes, the table somehow keeps breaking things... 😠

I guess it's something to do with this:
https://github.com/nf-core/nf-co.re/blob/e1305a4125150807dc4eba01022dc88c9a8277d2/includes/parse_md.php#L99-L101
The first replace won't work as we have added custom classes to this event table. But the second replace will work, which means we end up adding an extra </div>. I'll submit a PR to fix now 👍🏻

I actually had added some code to catch this (without having found the initial culprit:
https://github.com/nf-core/nf-co.re/blob/master/public_html/events.php#L188-L191

Fix 👉🏻  https://github.com/nf-core/nf-co.re/pull/679

I actually had added some code to catch this (without having found the initial culprit):
https://github.com/nf-core/nf-co.re/blob/master/public_html/events.php#L188-L191

Correct me if I'm wrong, but does that not do the opposite - adds additional closing </div> tags? We already have too many here so that will just make it worse 😅

Next one @mashehu - any ideas why the bottom 3 ToC items appear to be a lower hierarchy level?

They are all h2 headings in the markdown..

No, because it adds the extra 'for thecol` div, only if they divs in the parsed markdown are balanced, which wasn't the case with the table.


Support Python 3.10 in UIPlugins

After a recent update to Fedora 35, where Python 3.10 is the default Python version, BInary Ninja shows me:
Python 3.10 is unsupported by PySide. UI plugins have been disabled. To enable UI plugins, select a Python Interpreter in Settings between version 3.5 and 3.9

2.4.3081-dev Personal (Build ID e6569ee9)
Would be nice to have a support for it, now it's somewhat mainstream.

Can you please prioritize this or at the very least suggest a workaround?

There are no known work-arounds because QT for Python (PySide) requires QT 6.2 which made some other changes which are impacting our builds. I can look into it again but no promises on schedule. In the meantime, simply installing an older python or using one of the supported linux platforms is the best work-around.

@psifertex thanks for getting back to us and for the quick reply. I understand that downgrading the system python might not be a trivial exercise and can lead to unexpected bugs. Is there a way to use a virtualenv with BN?

Failed to import python plugin: official/Vector35_sigkit: No module named 'flatbuffers'
Failed to load plugin: Vector35_sigkit
are side effects as well - just as an FYI

Yup, see the following setting:

I guess that is a better work-around I should have thought about. 😉

Also, the flatbuffers issue isn't 3.10 specific--when you switch python versions or interpreters (even to an identical version) you're not going to have the same python dependencies installed. The quick fix is that you need to run python -m pip install flatbuffers (or equivalent for whatever missing packages) after switching versions in the new runtime.

For those that want to implement the virtualenv workaround, I wrote some instructions: https://akostopoulos.blog/2021/12/07/fixing-python-3-10-incompatibilities-in-binary-ninja/

Fixed in dev build 3401

Correction Fixed in dev build 3355


Migrating commands to a mixin

This patterns allows for the reuse of these commands across connection types, including modules that are based on this client.
This doesn't break any APIs as evident by the lack of change in unit tests.
Pull Request check-list
Please make sure to review and check all of these items:

[X] Does $ tox pass with this change (including linting)?
[X] Do the CI tests pass with this change (enable it first in your forked repo and wait for the github action build to finish)?
[X] Is the new or changed code fully tested?
[X] Is a documentation update included (if this change modifies existing APIs, or introduces new ones)?

NOTE: these things are not required to open a PR and can be done
afterwards / while the PR is open.
Description of change
Commands, and their associated helpers were moved from redis/client.py and added to redis/commands.py.

Can the 'commands' class include only base redis commands, by separating sentinel and cluster commands into their own command classes?
Then we can use multiple inheritance for special Redis clients and to ensure its API only includes its relevant commands

@barhsaul Great idea - I did that, after the 6.2.5 base docker upgrade. It still feels missing somehow given the parse_sentinel* helpers. Those might move as well :shrug:

It looks like there are some great sentinel commands in #834 that we can also reference here. Once this is merged, I'd look at merging that in.


Client diagnostics

Description
Add your description here!
Checklist
To ensure a quick review and merge, please ensure:

[ ] The PR has a understandable title and description explaining the why and what.
[ ] The PR is opened in draft if not ready for review yet.

If opened in draft, please allocate sufficient time (24 hours) after moving out of draft for review

[ ] The branch is recent enough to not have merge conflicts upon creation.

Ready to Land?

[ ] Build is completely green

Submissions with test failures require tracking issue and approval of a CODEOWNER

[ ] At least one +1 review by a CODEOWNER
[ ] All -1 reviews are confirmed resolved by the reviewer

Override/Marking reviews stale must be discussed with CODEOWNERS first

You probably need to update testserver to the version 3.1.12 and run from the repo root
npm install

.\eng\Generate.ps1 -reset

You probably need to update testserver to the version 3.1.12 and run from the repo root
npm install

.\eng\Generate.ps1 -reset

Thanks

Please create PRs using the standard process described here: https://github.com/Azure/azure-sdk-for-net/blob/main/CONTRIBUTING.md#standard-process

Please add a description to the PR.
Also, please add a link to the issue it is addressing, for details, see: https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue


Update doc for g:JavaComplete_UsePython3

Update doc for g:JavaComplete_UsePython3
Reverse the check to avoid needing to probe the python2 host

thanks


Open Targets Operations Secrets Store

Background
Automating our internal processes means either no human interaction at all, or the biggest possible reduction in human interaction.
Our new automation pipelines will interact with the core of Open Targets at many different aspects (infrastructure, code repositories, CI/CD…). Most of these interactions will require different access levels at the authentication domains of those Open Target subsystems.
In some cases, access credentials will be able to be manufactured on the fly, in other cases, those credentials will be more static, and present earlier in the process.
We need to set up a secure repository for these credentials, specially the static ones.

Review by the end of the year @mbdebian


Improved docs

added form action
2.Added .htaccess file so that the file extension like .php, .html is not visible in url. In simple words htaccess file allows users to call a file directly by its name without any need of extension.

I appreciate your changes on this, but will not be merging at this time. Stay Curious :)


Some Extra Parameters are not passing through to VRA

Versions:

Version of vmware-vra-gem: 2.7.0
Version of chef: 14.10.9
Version of ruby: 2.5.0

Platform Details

Version of vRA: 7.6
Version of ESXi: 6.5

Scenario:

Unable to pass all extra parameters through to VRA or once they are being validated during kitchen create, they are showing blank in VRA, even for required fields.
Steps to Reproduce:

Kitchen.yaml
---
driver:
  name: vra
  username:
  tenant: vsphere.local
  base_url:
  verify_ssl: false

platforms:
  - name: Application Server Test
    driver:
      catalog_name: Application Basic
      subtenant_name: Windows Services
      cpus: 2
      memory: 4096
      notes: Testing
      extra_parameters:
        ppm_project_code:
          type: string
          value: 54321
        _deploymentName:
          type: string
          value: VRA Testing Builds - 7.6
        Hostname:
          type: string
          value: My-Test-Server01
        MaintenanceWindow:
          type: string
          value: SAT 12:00-13:00
        ServerDescription:
          type: string
          value: Testing Test Kitchen
        SRM:
          type: boolean
          value: false
        Vrm.DataCenter.Location:
          type: string
          values: Lab
        VirtualMachine.Network0.Name:
          type: string
          value: 212_VLAN

suites:
  - name: default
    run_list:
      - recipe[vra_kitchen_test::default]
    verifier:
      inspec_tests:
        - test/integration/default
    attributes:

Expected Result:

Deployment would be sent to VRA to be built with all supplied parameters.
Actual Result:

Error
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: 1 actions failed.
>>>>>>     Failed to complete #create action: [Unable to submit request: The data specified within the request is invalid., Field with id ppm_project_code is required., Field with id SRM is required.] on default-Application Server Test
>>>>>> ----------------------
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running `kitchen diagnose --all` for configuration

It seems some parameters are not being sent through correctly or not at all.
Parameter unable to send at all
      extra_parameters:
        ppm_project_code:
          type: string
          value: 54321

Parameters that are validating but showing as blank in VRA on the request
      extra_parameters:
        _deploymentName:
          type: string
          value: VRA Testing Builds - 7.6
        Vrm.DataCenter.Location:
          type: string
          values: Lab

Parameter of boolean type not sending through
        SRM:
          type: boolean
          value: false

If changed to string it is able to pass-through
        SRM:
          type: string
          value: "false"

VRA Result

Service Name = _deploymentName

TLDR: Please update vmware-vra to 2.7.1 to try out fixes for the issues seen.
I was able to reproduce the issues which seem to arise from a problem with the merging of parameters in the blueprint template with those supplied via kitchen.yml. The deployment properties at the top level should come through now:
My kitchen.yml:
---
driver:
  name: vra
  username<EMAIL_ADDRESS>  tenant: vsphere.local
  base_url: https://vra.success.chef.co
  verify_ssl: false
  private_key_path: ~/.ssh/vagrant.pem

transport:
  username: vagrant

provisioner:
  name: chef_zero

verifier:
  name: inspec

platforms:
  - name: APP_Server
    driver:
      catalog_name: Application Basic
      subtenant_name: Windows Services
      cpus: 1
      memory: 2048
      notes: Notes go here
      extra_parameters:
        Deployment.PPMProjectCode:
          type: string
          value: A PPM Project Code goes here
        Deployment.ServiceName:
          type: string
          value: A Deployment Service Name goes here
        APP_Server~description:
          type: string
          value: A Description for the App Server goes here
        APP_Server~My.Domain:
          type: string
          value: A Domain here
        APP_Server~My.Network:
          type: string
          value: A Network Name here
        APP_Server~My.SRM:
          type: string
          value: A SRM here
        Deployment.AdditionalStringParameter:
          type: string
          value: A string value
        Deployment.AdditionalIntegerParameter:
          type: integer
          value: 999
        Deployment.AdditionalBooleanParameter:
          type: boolean
          value: true

suites:
  - name: default
    run_list:

Deployment:

Component:

I have added support (previously there was none) for passing through a parameter with a type of boolean.  All three types (String, Integer, Boolean) were accepted as additional parameters by vRA:

The Deployment description field should be set by the notes field rather than a parameter but doesn't appear to get set. This doesn't seem to be a problem at the component level, we will investigate this. I am not sure we pass through the Reason field either.
I have also added support for tracing in the driver so that you can see the blueprint being requested as JSON and then the merged/submitted template being POSTed back. To enable this, set VRA_HTTP_TRACE=1 in your environment prior to running Test Kitchen.
After this you will see every request and response hitting the vRA API. This can be useful to see the specific parameters being requested by the blueprint template.

Thanks @stuartpreston
I have tested the new version and I have been able to get all the fields (Minus Description and Reason) to come through. Also, the addition of VRA_HTTP_TRACE is very much welcoming. I was able to see what was actually happening which helps debugging.
The only thing I notice which might still be a bug, is that if I add a mandatory property in the kitchen.yaml but fail to add a value to it, it will still send this request to VRA as NULL. This is invalid and should fail to send the request as a value is required.
APP_Server~Vrm.DataCenter.Location:
  type: string
  value:

@RoinGrindwald Thanks for the quick testing and glad to hear things are working. On your last point about mandatory fields I’m not sure there’s a lot we can do as the API doesn’t appear to provide a list of which fields are mandatory.
I can’t think of a way around this without work to string parse the error message seen when you submit a null value for a mandatory field to get a list of these fields, do you have other ideas on how you’d see this working without more server round trips?

@stuartpreston Hmm, I see what you mean. What you might need to do is one call to the Properties Service API of each Property Group found in the blueprint. Within the property group you will see mandatory value.
"properties": {
    "_deploymentName": {
      "facets": {
        "visibility": {
          "type": "constant",
          "value": {
            "type": "boolean",
            "value": true
          }
        },
        "encrypted": {
          "type": "constant",
          "value": {
            "type": "boolean",
            "value": false
          }
        },
        "mandatory": {
          "type": "constant",
          "value": {
            "type": "boolean",
            "value": true
          }
        },
        "defaultValue": {
          "type": "constant",
          "value": {
            "type": "string",
            "value": ""
          }
        }
      }
    },

Also, is there a way to increase the kitchen create timeout value for deployments? If it gets to 600, if fails
Thanks