Unable to read SRC7 metadata via the TS SDK

Incoming from this forum post: https://forum.fuel.network/t/metadat-read-fail/4197

When we try to read Metadata from a SRC7-compliant contract, the SDK crashes with the following error:
Uncaught (in promise) RevertError: The script reverted with reason Unknown
    at revertErrorFactory (index.mjs:206:14)
    at RevertErrorCodes.getError (index.mjs:235:12)
    at RevertErrorCodes.assert (index.mjs:219:30)
    at new ScriptResultDecoderError (index.mjs:265:43)
    at decodeCallResult (index.mjs:375:11)
    at decodeContractCallScriptResult (index.mjs:576:95)
    at FunctionInvocationResult.getDecodedValue (index.mjs:703:28)
    at new InvocationResult (index.mjs:677:23)
    at new FunctionInvocationResult (index.mjs:746:5)
    at FunctionInvocationResult.build (index.mjs:764:22)
    at async Object.readMetadata [as onPress] (index.tsx:47:17)

Setting Metadata works fine though.

@Dhaiwat10 I was investigating this yesterday and I am going to share my findings with you:
Just like we already validated, setting the Metadata works, but when trying to get it, the TX is reverted.
The Metadata enum is defined here
So when setting a Metadata we have the option to do so using one of these types: Int, String, B256, and Bytes.
On the forum post, the error is happening when using the String type. So I've tried the other 3:
1 Int: Works both when setting and retrieving it, e.g:
const metadata = {
  Int: 100,
}

2 B256: Also works both when setting and retrieving it. e.g:
const metadata = {
  B256: getRandomB256(),
}

3 Bytes: Works when setting and retrieving it, however, the returned result is always an empty array.
const metadata = {
  Bytes: [40, 41, 42],
}

It is weird that the returned value by the fn metadata is an empty array. It is worth validating if the issue is on the TS-SDK side.

cc @danielbate

4 String: Works for setting but it always reverts when retrieving. I have also tried some different strings.
const metadata = {
  String: "fuel",
}

I am inclined to believe that the problem here is not coming from the TS-SDK side.
I hope these findings might help you in some way 🫡

The problem here is that bytes in this context is a nested heap type, not supported in v0. This is solved in v1 and proved in #1832.

@danielbate, when will there be a release with this fixed?

@chappie1998 I'm afraid we can't give an exact release date for this at the moment. The new encoding scheme is part of a wider piece of work, so requires aligning changes and releases with many products in our eco-system.
But as you can see, it is in active development and we will keep this issue up to date and can coordinate with yourself. #1672 also details the v1 changes within the TS SDK realm.

Hey, @danielbate, are these changes out with the latest release on both the sway and SDK side?

So this was included in v0.80.0 of the SDK. And v0.53.0 of forc. You will need to build your programs with --experimental-new-encoding.
As the flag suggests, this work is currently experimental so you may experience some unexpected behaviour, but it would be really helpful for you to try it out and feedback any problems.
One issue we are already aware of tho, is that it currently does not support multicall, that will be included in #2050.


Where is "installSimulator" that the README refers to?

Typo: should be installApplication

Fixed by 3226073d9f90362b201f84bb2b9338ff80d7fbbe


Versioning change

This PR is opened for further work on the issue of versioning change. Mainly designing tests. There were unexpected issues with existing unit tests, we will work on testing further here.

@zancas: I do not necessarily agree with the below:

Remove the check for the existence of the tmos_version key. We should GUARANTEE the existence of that key as part of the interface to ManagementRoot. I.E. no "if tmos_v: instantiation of ManagementRoot
I have implemented _ver_set() method in ManagementRoot as per above(which means we utilize our iControl to obtain the TMOS by parsing selfLink response. (it has been renamed to _get_tmos_version() btw).
However this has caused us problems with some existing unit tests. For example the tests in here:

f5\bigip\test\test___init__.py

My proposal to this will be to remove the _get_tmos_version() method out of the ManagementRoot and implement it inside the LazyAttributeMixin?
Or we can leave it as it is and rewrite the unit tests that fail. Depending on the decision here I can start writing some unit tests for this feature as well as amending some functional tests for the trust and profile sub-modules.

@zancas @swormke :
we could also do this where we just remove the following from ManagementRoot init :
self._get_tmos_version()

and just call it from _check_supported_versions method inside LazyAttributeMixin

Ok I have something different, thanks to Lukasz's help with @property:
    @property
    def tmos_version(self):
        # We return tmos_version, or if None,
        # we grab it and return value via _get_tmos_version(),
        # at the same time updating _meta_data['tmos_version']
        return self._meta_data['tmos_version'] or self._get_tmos_version()

On my way to test this :)

Looks like all of the tests are failing, this is not looking good

I have been able to narrow down the problems to 2 root causes:
Issue 1: Problems with 'tmos_version' property where it is not set on some unit tests. Due to us faking instantiation of ManagementRoot(BIGIP):
Resolution:

    @property
    def tmos_version(self):
        # We return tmos_version, or if None,
        # we grab it and return value via _get_tmos_version(),
        # at the same time updating _meta_data['tmos_version']
        return self._meta_data['tmos_version'] or self._get_tmos_version()

In addition to the above you would need to go through the tests we have and add manually the following:
instance._meta_data['tmos_version']

Here instance will be whatever fake BIGIP or MR object we create.
Issue 2: Sometimes the link to get tmos version gets duplicated so instead of getting:
https://yourhost:443/mgmt/tm/sys/ we get https://yourhost:443/mgmt/tm/sys/tm/sys.
This is due to the following:

class BigIP(ManagementRoot):
    """A shim class used to access the default config resources in 'mgmt/tm.'

    This class is solely implemented for backwards compatibility.
    """
    def __init__(self, hostname, username, password, **kwargs):
        super(BigIP, self).__init__(hostname, username, password, **kwargs)
        self._meta_data['uri'] = self._meta_data['uri'] + 'tm/'
        self._meta_data['allowed_lazy_attributes'] =\
            [TmAuth, TmCm, Ltm, Net, TmShared, Sys, Transactions]

Lots of our tests utilize BigIP(host, user, pass) syntax which explains why this is happening, as we append the /mgmt/ with tm/:
self._meta_data['uri'] = self._meta_data['uri'] + 'tm/'

our MR method: _get_tmos_version does this:
base_uri = self._meta_data['uri'] + 'tm/sys/'

I will need to think on how to address, some uri processing to check for existence of tm/ maybe ? As adding a method into BIGIP just for that is not the right thing to do.

Doing something like this. should do the trick

        if self._meta_data['uri'].endswith('tm/'):
            base_uri = self._meta_data['uri'] + 'sys/'
        else:
            base_uri = self._meta_data['uri'] + 'tm/sys/'

@wojtek0806 do you have some design insight to share?
'''
@zancas: I do not necessarily agree with the below:
Remove the check for the existence of the tmos_version key. We should GUARANTEE the existence of that key as part of the interface to ManagementRoot. I.E. no "if tmos_v: instantiation of ManagementRoot

'''

I agree with @zancas we should guarantee that the key is always there since we have control over this part of the code..  We can do this by simply adding it as "" or something in the __init__().  It makes writing the code so much cleaner later.

One other design question I have for this issue is whether or not there's utility to making the supported_versions be a class vs. instance variable of the concrete_subclasses.
As we now understand class attributes are accessible in the LazyAttributesMixin since that method has references to the actual classes.
Some reasons we might prefer a class attribute over an instance attribute:

It's a closer mapping to system we're modeling.   Specifically there is 1 class (type) per terminal URI, all instances of that class, should have the same supported_versions in other words, I think supported_versions is a class attributes, not an instance attribute.
Instantiating and object...   just to see if we should really be instantiating it...   feels hacky.   Or more technically, is risky, particularly if __init__ has extra-object side effects.    Mostly we've avoided that kind of side-effect (anti-pattern), but we decided to add exactly that kind of side effect in this very feature (and I think it's a good idea!), because we now have a communication between client and device during ManagementRoot instantiation!

To be clear, I'm not saying it's clearly the case that we should do this, but now is probably the right time to spend a minute thinking about trade-offs.

@wojtek0806 instead of changing _get_tmos_version to support tests that use the old BigIP pattern, can we change the failing tests to use the new ManagementRoot pattern?
The BigIP pattern is no longer best-practice, we shouldn't be adding complexity to the rest of the code-base to support it.

One other design question I have for this issue is whether or not there's utility to making the supported_versions be a class vs. instance variable of the concrete_subclasses.(...)

There is a major drawback to this, it leads to manually defining and changing parts of the code with each added TMOS version. For example:

We define "supported_versions = ['11.6.0', '12.0.0'] " class attribute inside PathElement (this is required as some classes do not inherit from ResourceBase, Licensing class in /shared for example)

Then in the classes that do not support version 11.6.0, we need to define their own class variable:
"supported_versions = ['12.0.0']".

Later on we add more versions to "supported_versions" class attribute inside PathElement, now, we have to go to each class that had their own "supported_versions" defined and edit the list, this has to be done each time we add new version.

With the current solution we just define "self._meta_data['supported_versions'] = ['11.6.0', '12.0.0']" in the PathElement, next we just do the following in classes that do not support 11.6.0:
"self._meta_data['supported_versions'].remove('11.6.0')"
Afterwards adding new classes to supported_versions will not require us to go back and change the above in each class that has been defined.
This is much easier to control as it grows and more scallable. Unless you know of another way we can do this then I am all ears :)

If a uri such as Add_To_Trust only exists in 12.0.0, does this change preclude someone who is using 12.0.1 from using that feature, since we are matching the version exactly? And if so, would we have to extend the list for each patch made to the version?

There's the distutils StrictVersion class that would make than unnecessary
http://stackoverflow.com/questions/11887762/how-to-compare-version-style-strings
Because we could use >= <= as need to check a range of versions

In the previous form you dont need to change anywhere but one place. we have global list where we can add versions as they come. in add to trust we remove those that we don support

@pjbreaux Not really, the way we obtain devices version is by extracting that from the Selflink, and from what I have seen in the current tick-tock software releases 11.6.1 and 12.1 that is reflected in the links. However hotfixes are not. I am going to look at the link @tar posted to see how we can do this with current logic of the version checking. I will probably nuke this PR along with the fork and do a clean one anywway. Thanks for input tho.

@caphrim007 For doing this comparison you still need to maintain the list of versions, for each class. While this is cool lib, it will not help here. I have been playing with this lib but won't do for what we want to do here.
@zancas  I have been playing about with class level attributes and it feels unmanageable in the long run. I am willing to risk it and have one list to rule them all, and just remove unsupported versions on sub-class level.

nuking this PR in favor of the new one.


Modify R script and renv.lock file

I changed the R script again and updated renv.lock file.
I kept both ways of importing multiple files as Option 1 (command line) and Option 2 (all csv files in the directory) and added one line of combining dataframes in option 1, because we will need to combine all the simulation results (csv files) to take weighted mean and plot. From my perspective, option 2 is more convenient when importing a large number of csv files, like 50 or 100. Option 1 is more flexible if we need to import, e.g. 20 of the 50 simulation results.
When trying to use Rscript command, I received "Rscript command not found" which might be a common issue. I would suggest adding this part in README, e.g. $Env:PATH += "C:\Program Files\R\R-4.3.2\bin".
Actually I've got error message when running R script, as described in https://github.com/imperialCHEPI/healthgps-plots/issues/1.

Hi @jzhu20, does this issue address James' issue #1 ? Specifically this bit "we should be careful to weight the average by count for each group, and ensure that baseline and intervention data points are separated correctly -- the ordering of baseline and intervention results is not guaranteed".
The stuff to do with allowing arbitrary number of input files can be addressed later as that's now another issue.

Hi @TinyMarsh. Yes, weighted mean is guaranteed. I've put 49 simulation results in /Visualization/Indian_data_HLM.
https://imperiallondon-my.sharepoint.com/:f:/r/personal/jjo11_ic_ac_uk/Documents/CHEPI/research/franco/Health-GPS_SHARED/Health-GPS_INDIA/[Visualization](https://imperiallondon-my.sharepoint.com/:f:/r/personal/jjo11_ic_ac_uk/Documents/CHEPI/research/franco/Health-GPS_SHARED/Health-GPS_INDIA/Visualization?csf=1&web=1&e=pxRVha)?csf=1&web=1&e=pxRVha

Hi @jzhu20, seems I do not have permission to view that link (or it's broken). Could you add me to the permissions?

Hi @jzhu20, seems I do not have permission to view that link (or it's broken). Could you add me to the permissions?

Seems the link doesn't work. Can you check with this new link?
https://imperiallondon-my.sharepoint.com/:f:/g/personal/jjo11_ic_ac_uk/EuIeELrQ5txOubPiGNIJCcMBBaEsNzWYgmUzxn6ki2sFRQ

@jzhu20 feel free to merge once you're happy.


Feature/layer freezing maskrcnn keypointrcnn

This pull request is a follow up pull reguest to PR, as requested by @fmassa .
This PR adds arguments to keypointrcnn_resnet50_fpn and  maskrcnn_resnet50_fpn functions, which allow the user to control the number of frozen layers in the backbone. Visit the previous PR (link above) to learn more about it.
I have also added respective test cases.
Let me know if any changes are required.

@fmassa my bad. I have corrected the linting errors but some checks are still failing.  I have checked the logs, these changes don't appear to be the reason. Will be happy to look deeper if you think otherwise.


mat-menu trigger is setting aria-expanded to null instead of false

Reproduction
Steps to reproduce:

Add a button with [matTriggerFor] for a mat menu

<button mat-icon-button
        #menuButton
        [matMenuTriggerFor]="exampleMenu">
</button>

<mat-menu #exampleMenu="matMenu">

Inspect the element in the browser
Click on the button to open the menu- it sets the aria-expanded to true
Inspect the element when the menu is closed - having it closed does not set it to false (sets it to null)

https://github.com/angular/components/blob/master/src/material/menu/menu-trigger.ts
'[attr.aria-expanded]': 'menuOpen || null',

Expected Behavior
When the menu is closed, aria-expanded should be set to false
Actual Behavior
When the menu is closed, aria-expanded is not set to false, it is set to null
Environment

Angular: 7.1.3
CDK/Material: 7.3.0
Browser(s): Chrome, Edge Chromium, Edge
Operating System (e.g. Windows, macOS, Ubuntu): Windows

This is intentional. Setting to null omits the attribute entirely, which intends to prevent screen-readers from reading necessary information. Are you seeing some issue here with a particular screen reader?


indicator_ipi-scope.gc missing "true" code (SDK 1.13.0 rc3)

We have noticed the following issue with the codelist indicator_ipi-scope.gc in SDK 1.13.0 rc3:
Although it's an indicator codelist code "true" is missing. (Only code  "false" exists.)
Will it be fixed in the final version?
Thanks for your answer in advance!

This is a deliberate choice because there are no IPI implementing acts yet - so the indicator that IPI applies can only be false.
Note that international-procurement-instrument-measure.gc only has one "empty" value as a placeholder, which will actually never be used.
We will need to update these codelists in a future SDK version once there is an IPI implementing act.  SDK 1.13 allows us to have the fields etc in place ready to be used.
See also https://code.europa.eu/eproc/eforms/docs/-/blob/main/guides/gde_002_ipi.md for some background.


Add slides

Just adding the CSUN slides as I am getting requests on Twitter.

Good idea. Can you share this with source in the sloan project repo?


Use of "force" option should not disable reporter

If the "force" option is enabled (true), the reporter is disabled: no detail of jscs violations are written in the console/file.
My use case is to generate a jscs report (in checkstyle or junit format) in continuous integration but not to fail the build. If I set "force" to true, my report is (nearly) empty and do not list jscs violations. If I set "force" to false, my report is complete, but the build fails.

Did the jscs fix all the errors? Or there some errors left, but they are not outputted?

Nothing has been fixed as I have not set the boolean "fix" to true.

I'm trying to clarify this bit -

If the "force" option is enabled (true), the reporter is disabled: no detail of jscs violations are written in the console/file.

Launching with "force: false" outputs some jscs violations (count of violations + detail of violations) in the console.
If we launch again with "force: true", the console output still has jscs violation count, but without details.
The problem is, if you use some reporterOutput (say Checkstyle or Junit), the content of the file is:

empty with "force: true"
filled with jscs violations with "force: false"

So the build can either not fail, either output the jscs violations in a file. But it can't do both.

We probably not gonna fix this at this point


[DRUID-12945] type conversion exception occurs during the variance query

Fixes #12945
Description
Fixed bug: type conversion exception occurs during the variance query

Key changed/added classes in this PR

VarianceObjectVectorAggregator
VarianceObjectVectorAggregatorTest

This PR has:

been self-reviewed
added unit tests or modified existing tests to cover new code paths, ensuring the threshold for [code coverage]
added integration tests.
been tested in a test Druid cluster.

There are some problems with the processing method of this submission, so re-optimized and submitted.


apply plugin: 'realm-android' kaptException

i have a error by using kotlin realm

I create two model like this:
open class ScheduleRealmModel(
    @PrimaryKey
    var scheduleId: Int = -1,
    var name: String = "",
    var subMedia: SubMediaRealmModel
) : RealmObject()

open class SubMediaRealmModel(
    @PrimaryKey
    var id: Int = -1,
    var label: String = ""
) : RealmObject()

when I add these model into my project, the error occur, but when i remove var subMedia: SubMediaRealmModel from ScheduleRealmModel， the project build OK。
Detail：
Build.gradle(app)
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: "androidx.navigation.safeargs.kotlin"
apply plugin: 'kotlin-kapt'
apply plugin: 'realm-android'

Build.gradle(Project)
buildscript {
    ext.gradle_version = "4.0.2"
    ext.kotlin_version = "1.4.10"
    ext.navigation_Version = "2.2.2"
    ext.realm_version = "7.0.0"
    repositories {
        google()
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:$gradle_version"
        classpath "io.realm:realm-gradle-plugin:$realm_version"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$navigation_Version"
    }
}

I hope to receive help!

Hi @FreedApe770
subMedia can not be declared required (or notnull) you should instead use
var subMedia: SubMediaRealmModel? = null

Please note this repo is for Kotlin Multiplatform, prefer creating an issue on the https://github.com/realm/realm-java one

Hi @FreedApe770
subMedia can not be declared required (or notnull) you should instead use
var subMedia: SubMediaRealmModel? = null

Please note this repo is for Kotlin Multiplatform, prefer creating an issue on the https://github.com/realm/realm-java one

@nhachicha
Thank you! I also got it by several times attempts.

Please note this repo is for Kotlin Multiplatform, prefer creating an issue on the https://github.com/realm/realm-java one
how to do, i am a newer for github.

@nhachicha
Thank you! I also got it by several times attempts.

Please note this repo is for Kotlin Multiplatform, prefer creating an issue on the https://github.com/realm/realm-java one
how to do, i am a newer for github.


Double Click is also intercepted as two single clicks

A double click works but also triggers two single clicks.
Expected Behavior
If there are listeners for both a single click and a double click, the double click should be a standalone event that doesn't translate to two single clicks. There should be no overlap between the two functionalities whatsoever, just like the native browser events behavior for the same.
Current Behavior
If you add a single click listener via onRowClick and a double click listener via setRowProps and onDoubleClick, a double click will also register as two single clicks.
Steps to Reproduce (for bugs)
Sandbox Reproduction

Open the link
Open the browser console.
Do a double click on any row
See an alert for the double click as well as 2 entries in the console for each single click

Your Environment
Chrome Version 78.0.3904.97 (Official Build) (64-bit)
OSX Mojave 10.14.6
EDIT: This thread on SO explains how single click and double clicks are handled by browsers. TIL they are not discrete events and do have an overlap.

Not sure how I feel about 1st class support for double clicks to be honest. Double click is a desktop paradigm, not a web paradigm, and many, extremely complex and sophisticated web applications get by just fine without it (gmail, facebook, github). I don't want this library to encourage questionable UX behaviors, when there is a lot of information and prior art concerning how to allow users to interact with a sophisticated web application without use of desktop-style interaction.

This is just how the web works. onClick always fires when you have an onDoubleClick event. However, unrelated to this table, you can get around this by using setTimeout in your onClick event and canceling the timer:
setRowProps: () => ({
  onDoubleClick: (row, dataIndex) => {
    clearTimeout(tt);
    alert("Double click!");
  }
}),
onRowClick: (rowData, rowMeta, e) => {
  clearTimeout(tt);
  tt = setTimeout(function() {
    console.log("Single Click");
  }, 1000);
}

@patorjk Thanks, this was news to me! I always thought that a double click and single click would be separate, non overlapping events. I added a SO link in my question as well that explains the mechanism well.

Thanks for your thoughts, @gabrielliwerant. My improved understanding of the workings and semantics of single/double clicks has helped address the issue; I'll be revising my requirement to want to have a single and double click on the same element.
If you have any links for must reads on how to allow users to interact with a sophisticated web application without use of desktop-style interaction, I'd be grateful, else I'll close the issue.

@siddharthbhagwan, apologies if it sounds like I came on strong, as it was not my intent. We're all learning, and I like the attitude with which you're approaching this. I think a good place to start if you're looking for some good web-based UX guidelines is the material design specs themselves. Google did a very good job in analyzing web usage and creating some great components to fit that behavior. This link can get you started: https://material.io/design/material-studies/about-our-material-studies.html#. One helpful tip is to look into switches/checkboxes, as these are often used to enable/disable things in a single-click context.
Ultimately, UX is hard, and there's often no single approach that always works. I would analyze which behaviors you want that seem to need doubleclick and then to consider if there are other structures (expandable panels is another common option) that would achieve the same goals, or perhaps to flatten out data hierarchies (overly nested sets of data or functionality that are hidden from users is often a reason to want special means of accessing them, but can often be solved by eliminating the nesting itself). Sorry if that's vague, but I hope it helps.


Installing Solr using bigtop debian packages

Installing Solr using Bigtop Debian packages

signed it!

@aniket486 @medb This PR is ready for review.

signed it


feat(i18n): ln actions

Describe the changes you have made in this PR
Adds i18n to ln actions.
Link this PR to an issue
#1368
Type of change (Remove other not matching type)

feat: New feature (non-breaking change which adds functionality)

How has this been tested?
Tested Manually
Checklist

[x] My code follows the style guidelines of this project and performed a self-review of my own code
[x] New and existing tests pass locally with my changes
[x] I checked if I need to make corresponding changes to the documentation (and made those changes if needed)

We decided to not translate the action due to these being mostly errors which the user will never see.


signals: add signal for deletion and upload of files.

Should we add some tests? Otherwise LGTM :)

Should we add some tests? Otherwise LGTM :)

@ChiaraBi they will come in the next PR! Thanks!


Save Yang Diagram

Can we have the option to save the yang diagram with good resolution? When the yang file is big we can not take a screenshot that fits in page

@FaizanFrolic
Is it not exported as SVG? For an SVG it is no problem to scale afterwards.
Also I think it's a Sprotty feature, need to investigate first.

@dhuebner mouse right-click does not work on the image. tried the "file-> save as" option but doesn't work. do we have any command to save the file as SVG? or does it saved by default to some default location on the system?

@FaizanFrolic

do we have any command to save the file as SVG?

There is a Sprotty feature for SVG export. On Mac it's CMD+Shift+E, thought didn't try it with Yang diagrams.

@FaizanFrolic
It works for me with Yangster using ALT-E, see here

@dhuebner
Thank You :)


Convert single-argument %-style format calls

Summary
Today, we only convert %-style format calls if the right-hand side is a dictionary or tuple literal. However, I think we can support a larger set of expressions on the right-hand side -- namely, for "opaque" expressions like Name, Attribute, Subscript, and Call, where the type is unknown.
There are three cases to consider...

The template string contain at least one named value ("%(foo)s" % x). In that case, the right-hand side has to resolve to a map, so we treat it as kwargs (e.g., "{foo}".format(**x)).
The template string contains multiple positional values ("%s %s" % x). In that case, the right-hand side has to resolve to a tuple, so we treat it as kwargs (e.g., "{} {}".format(*x)).
The template string contains a single value ("%s" % x). In that case, the right-hand side can be treated as a single value (e.g., "{}".format(x)).

There's one case that's not formally covered above, which is a template string that mixes named and positional values, like "%(foo)s %s". But I'm unable to come up with a right-hand side that's valid given mixed named and positional values. Does such a case exist? I believe it's impossible.
Closes #3549.

Case 3 does not hold.
x = (1,)
print("%s" % x)
print("{}".format(x))

Case 3 does not hold.
x = (1,)
print("%s" % x)
print("{}".format(x))

Ah that's a shame, I'd guess that's a small minority of cases.

I can't think of any way to avoid that, so I guess we have to continue omitting those cases.

(Removed, and amended the PR summary.)

I think the proper way to ensure the cases are correctly covered would be reading the cpython source code, but i couldn't find the percent formatting source code, only the tests: https://github.com/python/cpython/blob/5e6661bce968173fa45b74fa2111098645ff609c/Lib/test/test_format.py


fix(user management): fix disable button state when deselect all checkboxes [updated]

Description
Users/Admins are able to deselect all roles assigned to them and confirm during role updates.
Users should not be able to confirm the role update after deselecting all roles assigned to them. At least one role should remain selected at all times.
Users should not be able to confirm the role update after deselecting all roles assigned to them. At least one role should remain selected at all times.
Why
Please include an explanation of why this change is necessary as well as relevant motivation and context. List any dependencies that are required for this change.
Issue
https://github.com/eclipse-tractusx/portal-frontend/issues/919
Checklist

[x] I have performed a self-review of my own code
[x] I have successfully tested my changes locally

Hi @saadanzari thank you for your contribution! I needed to release the release candidate for the 2.1.0 version, could you please solve conflict in the with the changelog?


Feature: Add an elevator simulator

Is your feature request related to a problem? Please describe.
 Simulate the operation of an elevator and more importantly, how to handle the events generated when the buildings occupants use it.
Describe the solution you'd like
 An elevator app that simulates occupants calling for an elevator from any floor and pressing the buttons inside the elevator to indicate the floor they wish to go to.
Describe alternatives you've considered
 n/a
Additional context

I would like to work on this issue under Hacktoberfest 2021. Please assign it to me.

Hey ! I would love to work on this by making my first Hacktoberfest submission.
It would be great if I can get some more info to work with


How to interact with React or vue?

Seems it is built for css and html, but How to use it in React or Vue?

It renders the page. So it executes the React at startup for an initial build.
If you have dynamic interactive elements beyond that, you are correct it will not work to catch those css classes. You can either whitelist them, avoid using Uncss, or use one of the bajillion React/Vue design patterns that let you avoid depending on stylesheet classes for React components.

Thanks for your reply.


VSCode: cannot open terminal (posix_spawn failed: Permission denied)

In vscode 1.75.0, cannot open a terminal.
The same issue happened in Gentoo, see https://bugs.gentoo.org/show_bug.cgi?id=893208 for how they solved it
Notify maintainers
@TethysSvensson

Here's an expression that seems to work for me in the mean time.
vscode.overrideAttrs (finalAttrs: previousAttrs: {
  installPhase = previousAttrs.installPhase + ''
    chmod +x $out/lib/vscode/resources/app/node_modules/node-pty/build/Release/spawn-helper
    chmod +x $out/lib/vscode/resources/app/node_modules.asar.unpacked/node-pty/build/Release/spawn-helper
  '';
})

(note: this is a horrible way to patch nix packages and you shouldn't use this, I don't know what i'm doing)
Note that I've added exec permissions to both node_modules and ndoe_modules.asar.unpacked variants, but it seems that the asar one already has those.
$ ls -l $(find /nix/store/niz86m85pdkzhwark0kvms3a693d22fb-vscode-1.75.0 -name "spawn-helper")
-r-xr-xr-x 1 root root 39584  1 janv.  1970 /nix/store/niz86m85pdkzhwark0kvms3a693d22fb-vscode-1.75.0/lib/vscode/resources/app/node_modules.asar.unpacked/node-pty/build/Release/spawn-helper
-r--r--r-- 1 root root 39584  1 janv.  1970 /nix/store/niz86m85pdkzhwark0kvms3a693d22fb-vscode-1.75.0/lib/vscode/resources/app/node_modules/node-pty/build/Release/spawn-helper

#214666

I think there's a variant of this issue also present when using vscode remote dev. From a mac client, I'm connecting to a nixos remote host. Nixos doesn't have the vscode package installed (so the above patch doesn't do anything). But I then run:
fd spawn-helper ~/.vscode-server | xargs chmod +x

To find and fix perms for the spawn-helper file. Verifying that:
~/scratch/nix@work (main)$ fd spawn-helper ~/.vscode*
/home/mjibson/.vscode-server/bin/e2816fe719a4026ffa1ee0189dc89bdfdbafb164/node_modules/node-pty/build/Release/spawn-helper
~/scratch/nix@work (main)$ ls -l /home/mjibson/.vscode-server/bin/e2816fe719a4026ffa1ee0189dc89bdfdbafb164/node_modules/node-pty/build/Release/spawn-helper
-rwxr-xr-x 1 mjibson users 13688 Feb  1 07:57 /home/mjibson/.vscode-server/bin/e2816fe719a4026ffa1ee0189dc89bdfdbafb164/node_modules/node-pty/build/Release/spawn-helper

so it's definitely setting +x on the only instance of spawn-helper in the vscode remote binaries. After all this, there's no change from the reported behavior in this issue. Starting a terminal closes the pane immediately, and the Window output pane still contains
2023-02-06 14:27:26.663 [warning] The terminal process failed to launch: A native exception occurred during launch (posix_spawn failed: No such file or directory).

One workaround: run a 1.74.X client.

@mjibson We probably have a different problem here…
The same problem that also requires us to swap out the prebuilt nodejs before being able to use the remote server:
$ ./bin/e2816fe719a4026ffa1ee0189dc89bdfdbafb164/node_modules/node-pty/build/Release/spawn-helper: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=2130faeb2d0213c2a7ed0072726176ab45e17405, not stripped

Perhaps we should ask the VScode-nixos-service integrators to provide a fix for that?
@msteen and @mudrii are 2 maintainers I can find in my configs history. Not sure how many more variants of the script/service do exist.

(Yes, I also had to run that script to patch the node path, but I did not note it above.)

Not sure how many more variants of the script/service do exist.

Many. I, for instance, am/was(?) using jmatsushita/nixos-vscode-server

BTW why is the merged module system wide and single user? shouldn't it be refactored to work per user, just like the many community wrappers?

Here's an expression that seems to work for me in the mean time.
vscode.overrideAttrs (finalAttrs: previousAttrs: {
  installPhase = previousAttrs.installPhase + ''
    chmod +x $out/lib/vscode/resources/app/node_modules/node-pty/build/Release/spawn-helper
    chmod +x $out/lib/vscode/resources/app/node_modules.asar.unpacked/node-pty/build/Release/spawn-helper
  '';
})

(note: this is a horrible way to patch nix packages and you shouldn't use this, I don't know what i'm doing)
Note that I've added exec permissions to both node_modules and ndoe_modules.asar.unpacked variants, but it seems that the asar one already has those.
$ ls -l $(find /nix/store/niz86m85pdkzhwark0kvms3a693d22fb-vscode-1.75.0 -name "spawn-helper")
-r-xr-xr-x 1 root root 39584  1 janv.  1970 /nix/store/niz86m85pdkzhwark0kvms3a693d22fb-vscode-1.75.0/lib/vscode/resources/app/node_modules.asar.unpacked/node-pty/build/Release/spawn-helper
-r--r--r-- 1 root root 39584  1 janv.  1970 /nix/store/niz86m85pdkzhwark0kvms3a693d22fb-vscode-1.75.0/lib/vscode/resources/app/node_modules/node-pty/build/Release/spawn-helper

In addition, as for VSCode variant:
pkgs.vscode-with-extensions.override {
  vscode = pkgs.vscode.overrideAttrs (_: prev: {
    postPatch =
      prev.postPatch
      + "chmod +x resources/app/node_modules/node-pty/build/Release/spawn-helper";
  });
  vscodeExtensions =

In my version of the remote vscode wrapper, I was able to fix this issue by adding a symlink to the NixOS packages's spawn_helper binary.  Lines I added in  https://github.com/Princemachiavelli/nixos-vscode-ssh-fix
vscodeSpawnHelper = "${pkgs.vscode}/lib/vscode/resources/app/node_modules.asar.unpacked/node-pty/build/Release/spawn-helper";
find "$bin_dir" -name 'spawn-helper' -exec ln -sfT ${vscodeSpawnHelper} {} \;

Of course you will need pkgs.vscode to  be version >=1.75 (only in nixos-unstable currently) for it to have the patched spawn_helper binary.

I got this on Version: 1.85.2
Commit: 8b3775030ed1a69b13e4f4c628c612102e30a681
Date: 2024-01-18T06:40:11.430Z
Electron: 25.9.7
ElectronBuildId: 26354273
Chromium: 114.0.5735.289
Node.js: 18.15.0
V8: <IP_ADDRESS>-electron.0
OS: Darwin arm64 23.2.0


Update Service Bus SDK dependency

We are seeing non trivial amounts of message duplication. We believe that updating the Service Bus SDK may help reduce the number of duplicated messages.

Some reading on message Service Bus message duplication: https://docs.microsoft.com/en-us/azure/service-bus-messaging/duplicate-detection


Better regex matching

Add python main.py --test-get-bsky-username
Regex matching many different possible combinations of bsky handles and 'bsky' or '🦋'

I didn't realize URLs in twitter bio were shortened, but we could match usernames? idk

Yaaaaay a pull request! Thank you so much ^^ !!!
I fixed the url-shortening problem. https://github.com/ianklatzco/twitter-to-bsky/blob/892a27dc3af8ac79f311320cf0c287f4f0bdd261/webapp/main.py#L130
jay's done this, so we should probably follow suit:

some users have Accidentally Done The Wrong Thing:

I wonder if these regex will have a big perf impact? Probably is fine.
Currently the tool seems slow when it has to query the bsky api for profiles (which it does synchoronously). It might even be possible to just remove the profile queries entirely and purely transform the input json.

Looks great! Thank you so much. Take a peek at the issues if you're itching for more ^^ I'll probably head to bed shortly.


cicd: add dateutil to dependencies

Dateutil was added as a dependency recently (last week), but for some unknown reason the build only started failing last night it was added. Other packages depend on this so it was always being installed regardless, but now we are forcing it since we use it directly.
It is possible the package that was previously depending on it, had a new release last night that no longer requires it.
Anyhow, I incorrectly assumed it was part of the standard python library, but thankfully the pipeline is alerting us to my mistake.

@siewyeng This will unblock your PR

I see!


Getting Started page has invalid tsdproxy.yaml

Describe the bug
On https://almeidapaulopt.github.io/tsdproxy/docs/getting-started/ , there is a sample yaml file listed under the “Configure TSDProxy” section, and it has a “file” key:
...
  local: # name of the docker provider
    host: unix:///var/run/docker.sock # host of the docker socket or daemon
    targetHostname: <IP_ADDRESS> # hostname or IP of docker server
    defaultProxyProvider: default # name of which proxy provider to use
file: {}
tailscale:
  providers:
    default: # name of the provider
      authKey: your-authkey # define authkey here
...

There is a new version of TSDProxy (1.3.0) and it does not like this key.
Expected:
The sample files in the documentation should work on the most recent version of TSDProxy.
Actual:
When you run TSDProxy 1.3 with that sample config file it errors out:
Initializing server
Version 1.3.0
loading configuration from: /config/tsdproxy.yaml
error: yaml: unmarshal errors:
  line 7: field file not found in type config.config

Removing the “file” key allows TSDProxy to start.

its the right behavior. It should be files instead of file.
https://almeidapaulopt.github.io/tsdproxy/docs/changelog/#130

The bug isn’t that the file is validated. The bug is that your documentation has an invalid file.
Please update your documentation on https://almeidapaulopt.github.io/tsdproxy/docs/getting-started/ to have a valid file.

The bug isn’t that the file is validated. The bug is that your documentation has an invalid file.
Please update your documentation on https://almeidapaulopt.github.io/tsdproxy/docs/getting-started/ to have a valid file.

done. Thank you


mark translatesfx as deprecated

Description:
Add a notice statement when executing translatesfx and a few deprecation notices on the translatesfx tooling to indicate that it is now deprecated and will eventually be removed.

@atoulme We're currently recommending translatesfx in https://docs.splunk.com/observability/en/gdi/opentelemetry/translation-tool.html
Happy to add that deprecation note to the docs, too, if needed. Just say the word.

@theletterf appreciate, please do if possible.


[BUG] Improve error return processing in node-disk-manager

Describe the bug

From the following conversation, an enhancement is in plan to improve the error return processing.
https://github.com/harvester/node-disk-manager/pull/19
To Reproduce
Source code  itself skips returned error when getting information from OS,
when any of them are hit, then uncertainty may come and root cause is hidden.
pkg/block/block_device.go
pkg/block/block.go
...
Expected behavior

All errors should be handled carefully, e.g., report errors to controller, which has defined/tunable failure policy.
Support bundle

Environment:

Harvester ISO version:
Underlying Infrastructure (e.g. Baremetal with Dell PowerEdge R630):

Additional context
Add any other context about the problem here.

The node-disk-manager has been updated later. Close as finished.


Clean up NLPModels test suite

Tests

Clean up and document NLPModels test suite
Add dependencies to test deps

The inconsistencies are displayed here: https://github.com/adrhill/SparseConnectivityTracer.jl/actions/runs/9502646372/job/26191136176?pr=121#step:6:1393
Benchmarks

Add one run of each OptimizationProblems Jacobian and Hessian to the benchmark suite

Codecov Report
Attention: Patch coverage is 0% with 46 lines in your changes missing coverage. Please review.

Project coverage is 84.36%. Comparing base (1786815) to head (024a093).

Files
Patch %
Lines

test/nlpmodels.jl
0.00%
46 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #121      +/-   ##
==========================================
- Coverage   89.31%   84.36%   -4.95%
==========================================
  Files          30       30
  Lines        1198     1158      -40
==========================================
- Hits         1070      977      -93
- Misses        128      181      +53

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

The benchmarks have been running for more than an hour now, which will significantly slow down future PRs, especially since I can't run benchmarks locally (https://github.com/tkf/BenchmarkCI.jl/issues/180).
Can we restrict the benchmarks to 5 NLPModels tests of varying sizes, including our darling britgas?

Sure, I'll pick them tomorrow. Do you want me to put an empty list in the benchmark suite so that you can merge this first?


linux_4_{14,19}: restore _kernel_fpu{begin,restore}

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Port to 19.03 in #63665
cc @Mic92

zfs noticed this a while ago: https://github.com/zfsonlinux/zfs/issues/8793#issuecomment-496709454


Pyupgrade: Import Replacements

A part of #827. I started this trying to use libcst. However, if found it added a lot of complexity because I have to change the order of the imports, which really messed up the formatting. If you know of a good way to handle this I will be happy to switch.

@charliermarsh , I don't love the way I am handling muli-line imports. Pretty much, if there is a match I am always changing it to:
from unmatching (
    import1,
    import2
)
from matching {
    import1
    import2
)

However, I think this might be the best way for a few reasons:

Libcst makes this a lot more complicated (unless there is something I am missing)
If we are adding our own version of black, it makes sense for these functions to export in one standard way, and then let black clean up the change
This standardizes all ruff code, which may be beneficial

Please let me know your thoughts on this, or if there is something I am missing let me know!

I am moving this out of draft status. However, I will still be adding some more test cases to make sure it always works.

A couple of pointers, hope it helps. Great effort 👍

Thanks for the feedback!

@charliermarsh what else do you want here for a merge (im not sure why only the windows texts are failing).

@colin99d - Nothing on your end. I just need to find time to review. Sorry for the delay. I'll rebase etc. when necessary.

Perfect! Just wanted to make sure you weren't waiting on something. Thank you for all the work you put into this!

@charliermarsh I got all the six stuff removed, would you like me to add a blurb in the readme about why we do not have six, and how users can run pyupgrade once, and then use us?

@colin99d - No that's ok. I'll add something to BREAKING_CHANGES.md and the release notes prior to release.

I want to change one more thing here, but hopefully it can go out tomorrow.


Cant access login screen.

Hello, I've installed this plugin using an image with a startup script to get homebridge running with a camera added, so homebridge starts automagically. I ran the install command for unsafe-perm and it seems to have installed correctly (although i don't know how to check this without a gui) and i edited the config file, but i get "Unable to connect" on Firefox and "Connection Refused" on Chrome. What should I be doing next?

What do the homebridge logs show?


[Automation] Generate SDK based on TypeSpec 0.15.18

[Automation] Generate SDK based on TypeSpec 0.15.18

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

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


is stm32f103 series supported?

hoping to support stm32f103* chipsets because it seems that it's more widely used.

Huawei LiteOS are planning a workshop held in Beijing this Saturday. And we provide a Huawei LiteOS demo that works on stm32f103 board, to demonstrate the whole migrating process.
Here is the workshop portal:
http://developer.huawei.com/ict/cn/events/site-iot-workshop2016-liteos
For other chipset, wish we can do it together here based the open source project：）

what an awesome thing!


it support typescript? have @types/dataloader-sequelize ?

No types are included with the project, i can't say if someone else has published types.


[#133247209] Datadog: don't false alarm during deployment

What
Datadog: don't false alarm during deployment
Reconfigure datadog checks so that we don't get false positives (alerts, no_data notifications) during BOSH deployments (when you e.g. rotate a stemcell).
How to review
Deploy environment with datadog enabled. Apply this branch. Then bump stemcell (e.g. change the number to 3263.10 in manifests/cf-manifest/manifest/000-base-cf-deployment.yml - you'll need to commit. To test that, create a branch from this branch and commit there, or you can add a temporary commit into this branch). Apply. There should be no false positive alerts.
Note that we have tested stemcell bump (to 3236.10) several times during development, with passing acceptance and custom acceptance tests. I think we could leave the stemcell bump a part of this branch, as the reviewer will have to test it as well. And then it becomes tested by both developer and reviewer, so no reason to drop it and do upgrade in separate story.
Who can review
not @mtekel or @henrytk

Won't increasing these time windows increase the time it takes to alert for a genuine problem?
Is there not a mechanism in datadog whereby we can specify planned downtime for a host and silence the alerts for that period only (Something like the "scheduled downtime" in Nagios/Icinga)?

Won't increasing these time windows increase the time it takes to alert for a genuine problem?

Yes, but weigh that against the reduced noise and increased chance of us noticing and acting on an alert and I think it is worth the increase.

Is there not a mechanism in datadog whereby we can specify planned downtime for a host and silence the alerts for that period only (Something like the "scheduled downtime" in Nagios/Icinga)?

There are ways of silencing monitors and hosts for periods of time (although you can't mute hosts as part of a cluster check for some reason). The problem is in how it could be automated in an intelligent fashion. It is likely you would end up silencing Datadog alerts for most if not all of the deployment.

You set the update_watch_time for bosh to 7m, and then the no_data timeout also to 7 minutes.
Wouldn't it make sense to set the no_data to slightly more, like 8m.

Reality of update speed is that worst case scenario is 5, thus 7 gives some reserve. For disk check we set 10 mins in the end. All others that are set to 7, do update in practice much faster (e.g. 2mins, 3 mins). We could speculate what is the best number, but for now 7 seems good compromise for both timeouts and bosh update delay. Moreover, in case VM is not re-created, it is quite accurate.
In general, we should re-think our checks and decide which concepts we want to apply. This might include removing no_data notification on most of the monitors...

This works as expected. I tested it a pair times and it is fine. There are not alerts sent, only warnings from bosh healthy during deployment, which is expected and desired.
But I think we can do a separate PR for the stemcell ;)
Merging.


feat: refactor styles

:tada: This PR is included in version 1.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


convert GM CGamDoc from MFC to wx

Hi Bill,
Just a heads up... I see your PR but won't be able to get to it for at least a couple days.
-Dale

Sorry, this really got away from me over the holidays. I'm on it now.
-Dale

During some cursory run tests I noticed that the CBPlay program is scaling the view and scrollbox bitmaps and CBDesign is not. I think this is because you haven't really started the conversion of the CBPlay codebase yet. I just mention it in case I'm wrong.

I have changed the resource and manifest configuration for CBDesign but not for CBPlay, so I would expect them to behave differently.  I hope the CBDesign behavior is better than the CBPlay behavior, but your description here doesn't make it clear to me which is better.  From the previous MR discussions, I assume CBDesign is behaving correctly, so I will leave this alone for now.

One other strange thing is when I first select a GAM or GSN file it will tell me it's going to upgrade the older format (which is totally fine) but then says it can't find the GBX file yet the message box shows the path and the file is definitely at that path. The second time through it found it fine even though I didn't save any files. I think it may have something to do with the program's starting "current working directory".

I don't remember seeing this, but if it only happens the first time one runs, I would expect not to remember it.  For now, I won't do anything about this either.

I'll merge if you're happy with this assessment.

Yes, please merge.

but your description here doesn't make it clear to me which is better. From the previous MR discussions, I assume CBDesign is behaving correctly, so I will leave this alone for now.

I like the rescaled version of CBPlay best because they are a good size for my 4k HiDPI scaling. Otherwise the board and piece details are way too small.
HOWEVER.... I prefer the CBDesign behavior best at this time because I think it's better that the program rescale the views rather than get the fuzzy rescaling that Windows does behind the scenes.
So this is a can kicked down the road for now until we get enough of wxWidgets capabilities are available to handle the HiDPI scaling natively.
-Dale

Merged.
-Dale


internal/html/static/css: flex-wrap

current layout is ugly on mobile:

compared to GoDocs, which wraps:

this fix adds wrapping:

Thanks!


Google oAuth not working in Android

Google oAuth is not working for Android. I get an error - user agent not allowed in Android.

This is due to Google disallowing embedded webviews for authorization: https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html.
The Android implementation in this package uses a webview. It needs to be updated to use a Chrome tab, as described by Google. There's a hack in #130 to make it work, but that's going against Google's instructions on how to properly do authorization on android.

Better using the user's actual UserAgent and replace wv from it instead of the hard coded one
mWebView.getSettings().setUserAgentString(mWebView.getSettings().getUserAgentString().replace("; wv", ""));
Ref: https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html
P.S. I have open the PR for this issue, however this library seems no longer supported by the original author, you may consider using other OAuth RN library.


einsum performance regression after disabling bookend optimization

🐛 Bug
Repro script from @nikitaved
import itertools
import torch
from torch.utils.benchmark import Timer, Compare
import thunder

#dtypes = [torch.bfloat16, torch.float, torch.double]
# NOTE: we know that it's host latency that's mostly triggering this issue, so not swiping across dtypes
dtypes = [torch.float]

def f(eq, *inputs):
    return torch.einsum(eq, *inputs)

f_thunder = thunder.jit(f, nv_enable_bookend=False)
f_torchcompile = torch.compile(f)

results = []

# Largest dim
#for n in (16, 128, 512):
# NOTE: we know that it's host latency that's mostly triggering this issue, so not swiping across `n`
for n in (16,):
    cases = (
        # single contraction dim
        # no broadcasting
        ([(2, n, n), (n, n)], "bij, jk"),
        # left broadcasts
        ([(2, n, 1), (n, n)], "bij, jk"),
        # right broadcasts
        ([(2, n, n), (1, n)], "bij, jk"),
        # multidim contraction
        # no broadcasting
        ([(2, 8, n, n), (2, n, 8, n)], "bijk,bklj->bli"),
        # left broadcasts
        ([(2, 8, n, 1), (2, n, 8, n)], "bijk,bklj->bli"),
        # right broadcasts
        ([(2, 8, n, n), (2, n, 8, 1)], "bijk,bklj->bli"),
    )
    # NOTE: only run thunder since we are only investigating bookend
    #for func, func_name in ((f, "f"), (f_thunder, "f_thunder"), (f_torchcompile, "f_torchcompile")):
    for func, func_name in ((f_thunder, "f_thunder"),):
        for dtype in dtypes:
            for shapes, eq in cases:
                inputs = [torch.rand(*shape, dtype=dtype, device='cuda') / (10 ** len(shape)) for shape in shapes]

                # warm-up
                func(eq, *inputs)

                shape_dscr = ','.join(str(shape) for shape in shapes)
                timer = Timer(
                    f"{func_name}(eq, *inputs)",
                    globals=globals(),
                    label=f"einsum, {n=}",
                    description=f"{func_name}",
                    sub_label=f"{dtype}, shapes={shape_dscr}, {eq=}",
                    #num_threads=torch.get_num_threads()
                )
                results.append(timer.blocked_autorange())

compare = Compare(results)
compare.trim_significant_figures()
compare.print()

With bookend optimization
[-------------------------------------- einsum, n=16 --------------------------------------]
                                                                                |  f_thunder
1 threads: ---------------------------------------------------------------------------------
      torch.float32, shapes=(2, 16, 16),(16, 16), eq='bij, jk'                  |      65
      torch.float32, shapes=(2, 16, 1),(16, 16), eq='bij, jk'                   |      67
      torch.float32, shapes=(2, 16, 16),(1, 16), eq='bij, jk'                   |      84
      torch.float32, shapes=(2, 8, 16, 16),(2, 16, 8, 16), eq='bijk,bklj->bli'  |      68
      torch.float32, shapes=(2, 8, 16, 1),(2, 16, 8, 16), eq='bijk,bklj->bli'   |     115
      torch.float32, shapes=(2, 8, 16, 16),(2, 16, 8, 1), eq='bijk,bklj->bli'   |     119

Times are in microseconds (us).

Without bookend optimization
[-------------------------------------- einsum, n=16 --------------------------------------]
                                                                                |  f_thunder
1 threads: ---------------------------------------------------------------------------------
      torch.float32, shapes=(2, 16, 16),(16, 16), eq='bij, jk'                  |     130
      torch.float32, shapes=(2, 16, 1),(16, 16), eq='bij, jk'                   |      67
      torch.float32, shapes=(2, 16, 16),(1, 16), eq='bij, jk'                   |      84
      torch.float32, shapes=(2, 8, 16, 16),(2, 16, 8, 16), eq='bijk,bklj->bli'  |     112
      torch.float32, shapes=(2, 8, 16, 1),(2, 16, 8, 16), eq='bijk,bklj->bli'   |     112
      torch.float32, shapes=(2, 8, 16, 16),(2, 16, 8, 1), eq='bijk,bklj->bli'   |     112

Times are in microseconds (us).

shapes=(2, 16, 16),(16, 16), eq='bij, jk'
This is the case where it regressed the most. Regression here comes through nvfuser host overhead. Bookend optimization removed everything going through nvfuser.
def computation(t_1, t_2):
  # t_1: "cuda:0 f32[2, 16, 16]"
  # t_2: "cuda:0 f32[16, 16]"
  [t1, t3] = nvFusion0(t_1, t_2)
    # t2 = prims.transpose(t_1, (2, 0, 1))  # t2: "cuda:0 f32[16, 2, 16]"
    # t3 = prims.reshape(t2, (16, 32))  # t3: "cuda:0 f32[16, 32]"
    # t1 = prims.transpose(t_2, (1, 0))  # t1: "cuda:0 f32[16, 16]"
  del t_1, t_2
  t4 = torch.matmul(t1, t3)  # t4: "cuda:0 f32[16, 32]"
    # t4 = ltorch.matmul(t1, t3)  # t4: "cuda:0 f32[16, 32]"
      # t4 = prims.matmul(t1, t3)  # t4: "cuda:0 f32[16, 32]"
  del t1, t3
  [t6] = nvFusion1(t4)
    # t5 = prims.reshape(t4, (16, 2, 16))  # t5: "cuda:0 f32[16, 2, 16]"
    # t6 = prims.transpose(t5, (1, 2, 0))  # t6: "cuda:0 f32[2, 16, 16]"
  del t4
  return t6

shapes=(2, 8, 16, 16),(2, 16, 8, 16), eq='bijk,bklj->bli'
Regression mostly comes from host overhead on this one.
def computation(t_1, t_2):
  # t_1: "cuda:0 f32[2, 8, 16, 16]"
  # t_2: "cuda:0 f32[2, 16, 8, 16]"
  [t3, t4] = nvFusion0(t_1, t_2)
    # t2 = prims.transpose(t_1, (0, 2, 3, 1))  # t2: "cuda:0 f32[2, 16, 16, 8]"
    # t4 = prims.reshape(t2, (2, 256, 8))  # t4: "cuda:0 f32[2, 256, 8]"
    # t1 = prims.transpose(t_2, (0, 2, 3, 1))  # t1: "cuda:0 f32[2, 8, 16, 16]"
    # t3 = prims.reshape(t1, (2, 8, 256))  # t3: "cuda:0 f32[2, 8, 256]"
  del t_1, t_2
  t5 = torch.matmul(t3, t4)  # t5: "cuda:0 f32[2, 8, 8]"
    # t5 = ltorch.matmul(t3, t4)  # t5: "cuda:0 f32[2, 8, 8]"
      # t5 = prims.matmul(t3, t4)  # t5: "cuda:0 f32[2, 8, 8]"
  del t3, t4
  return t5

Note that this doesn't look as bad, because this trace kernel actually does require a memory copy on t_2->t1->t3, which is also observed with bookend enabled.
nvfuser generated kernel has slightly better perf than the eager kernel, while the other branch is handled by no-op (alias support in codegen).
Segmented_Fusion Dump: -- fusion segments:
Segmented_Fusion{
groups:
g{2, 4, 6}

g{0, 7, 9}

edges:

group details:
g{(pointwise)
inputs:
T1_g[ iS4{i5}, iS5{i6}, iS6{i7}, iS7{i8} ] float
outputs:
T6_g[ iS30{i5}, iS31{i7}, iS36{( i8 * i6 )}rf ] float

T4_g[ iS19{i5}, iS21{i7}, iS22{i8}, iS20{i6} ]
   = Set.Permute( T1_g[ iS4{i5}, iS5{i6}, iS6{i7}, iS7{i8} ], cache_op=Streaming )
(2)
T6_g[ iS30{i5}, iS31{i7}, iS36{( i8 * i6 )}rf ] = view( T4_g[ iS19{i5}, iS21{i7}, iS22{i8}, iS20{i6} ] )
(6)
i41 = i8 * i6;
(4)
}

g{(no_op)
inputs:
T0_g[ iS0{i0}, iS1{i1}, iS2{i2}, iS3{i3} ] float
outputs:
T7_g[ iS37{i0}, iS43{( i2 * i3 )}rf, iS40{i1} ] float

T2_g[ iS8{i0}, iS10{i2}, iS11{i3}, iS9{i1} ]
   = Set.Permute( T0_g[ iS0{i0}, iS1{i1}, iS2{i2}, iS3{i3} ], cache_op=Streaming )
(0)
T7_g[ iS37{i0}, iS43{( i2 * i3 )}rf, iS40{i1} ] = view( T2_g[ iS8{i0}, iS10{i2}, iS11{i3}, iS9{i1} ] )
(9)
i44 = i2 * i3;
(7)
}

} //Segmented_Fusion

shapes=(2, 8, 16, 1),(2, 16, 8, 16), eq='bijk,bklj->bli' & shapes=(2, 8, 16, 16),(2, 16, 8, 1), eq='bijk,bklj->bli'
No significant regression observed.
These are the positive cases, nvfuser has absorbed the transpose at the end of a reduction kernel but those were handled via aliases.
shapes=(2, 16, 1),(16, 16), eq='bij, jk' & shapes=(2, 16, 16),(1, 16), eq='bij, jk'
No regression observed, since the entire fusion is running through nvfuser, bookend optimization doesn't change the trace. (einsum is broken into sum + pointwise mul)

Tried to look at the perf again:
With bookend optimization:

No bookend optimization:

Performance regression doesn't seem to have changed. :cry:
But as a sanity check, I looked at case shapes=(2, 16, 16),(16, 16), eq='bij, jk'
seems like nvfuser is generating a pw kernel on a segmented fusion and that doesn't look right. I'm suspecting there's something I did wrong for allocation order inference.

Can we measure whether this is a wallclock time (CPU overhead) or a kernel time regression?  An NSight profile would show the comparison.

The example above gives the trace here. Ignoring thunder overhead and focus only on the impact from disabling bookend optimization in nvfuser executor
It's bloated with some extra latency from nvtx range, but looks like things surrounding nvfuser execute call isn't adding much overhead (I added two more marker on get_fd and execute for section in https://github.com/Lightning-AI/lightning-thunder/blob/bd18f0a1feeb0432a10bb17f45858c28cbd3ba29/thunder/executors/nvfuserex_impl.py#L401-L412).
The extra cpu latency (when bookend is disabled) is added by nvfuser. In terms of actual kernel time, the script runs tiny kernels and I'm not seeing any differences here at all.
Two follow up items:

Even though there's only one element-wise kernel, we do have two nvFusion segments, one of which is a no-op session. (I'm wondering if there's any runtime that can be reduced for those).

The einsum script here is just a toy example, part of the reason why we are getting hit hard by cpu latency. I'll try this with nano-gpt to see if there's any observed latency issue from a real benchmark.

Note to myself.
@wujingyue has some benchmark results in #731 . which is what I'm trying to evaluate in item 2 above.


Thumbs Gallery With Two-way Control doesn't work with loop

Is it possible to get this working with loop?
If I add loop = true it just breaks.
Thanks

You have to enable loopedSlides parameter and specify the same parameter for both sliders there

Thank you for submitting and replying this issue! It is really useful for me as well.
According to my experience we need to specify the half of the number of the slides for the loopedSlides parameters. So here is a calculation example which is using jQuery (which is not necessary of course, it can be calculated with pure JavaScript as well):
loopedSlides: $('.gallery-top > .swiper-wrapper > .swiper-slide').length / 2

Although this works fine, there are still some (loading like) glitch sometime when you interact with the .gallery-thumbs part.

Issue is closed because of outdated/irrelevant/not actual/needed more information/inactivity.
If this issue is still actual and reproducible for latest version of Swiper, please create new issue and fill the issue template correctly:

Clearly describe the issue including steps to reproduce when it is a bug.
Make sure you fill in the earliest version that you know has the issue.
Provide live link or JSFiddle/Codepen or website with issue


chore(i18n): add missing translations for fidelity bonds form

Small i18n fixes:

add missing translation for key earn.fidelity_bond.review_inputs.text_primary_button_error
fix typo in key .error.loading_address -> .error_loading_address

This has come up when trying to create a fidelity bond with a wallet that does not support fidelity bonds. Jam, by default, will always generate fb-enabled wallets. If we want to prevent users with unsupported wallets from even seeing the form, Jam would have to make an additional http call prior to that - so it might not be worth it.
Question is: Should we append the phrase "Your wallet might not support fidelity bonds" or "Please make sure your wallet supports fidelity bonds", or something like that?

This has come up when trying to create a fidelity bond with a wallet that does not support fidelity bonds.

I don't understand. Can you elaborate?

I don't understand. Can you elaborate?

Fidelity Bonds have been introduced with JM v0.9.0 (released on 2021-07-31).
e.g. if you recover a wallet with python3 scripts/wallet-tool.py recover you'll get asked Would you like this wallet to support fidelity bonds? write 'n' if you don't know what this is (y/n). If you opt-out, trying to create a timelocked FB address will yield an error.

Ah, I see. Thanks for the clarification.

Question is: Should we append the phrase "Your wallet might not support fidelity bonds" or "Please make sure your wallet supports fidelity bonds", or something like that?

I think it's fine as it is. The error isn't perfect, but I'd consider this an edge case and we can elaborate in the docs.


raspberrypi0-2w-32

Hello, I  writed a conf file  to get the raspberrypi0-2 to work in 32 mode to have the camera packages raspivid. It works just fine. But the problem I don't have wlan0 interface. I tried everything but I didn't succeed in getting to work. Here is my conf file:
#@TYPE: Machine
#@NAME: RaspberryPi0 2 Wifi Development Board
#@DESCRIPTION: Machine configuration for the RaspberryPi0 2 Wifi in 32 bits mode
include conf/machine/raspberrypi3.conf
MACHINEOVERRIDES := "${@'${MACHINEOVERRIDES}'
.replace(':${MACHINE}',':raspberrypi3:${MACHINE}')}"
MACHINE_EXTRA_RRECOMMENDS += "
linux-firmware-rpidistro-bcm43436
linux-firmware-rpidistro-bcm43436s
bluez-firmware-rpidistro-bcm43430b0-hcd
linux-firmware-rpidistro-bcm43430
"
also i tried to add following lines  to machine conf file.
RPI_KERNEL_DEVICETREE = "
broadcom/bcm2710-rpi-zero-2.dtb
"
But i get an error :
| make[2]: *** No rule to make target 'arch/arm/boot/dts/broadcom/bcm2710-rpi-zero-2.dtb'.  Stop.
It works just fine. The problem that I have is with the interface wlan0. I don't know why i don't have it ?

Hello, the problem is you need the dtb, when in 32 bits file structure is different. Take a look at my PR: #972

Hello, i got it fixed a few days ago.
Best regards,
Safouane
Envoyé à partir de Courrierhttps://go.microsoft.com/fwlink/?LinkId=550986 pour Windows
De : @.>
Envoyé le :vendredi 10 décembre 2021 10:47
À : @.>
Cc : Safouane @.>; @.>
Objet :Re: [agherzan/meta-raspberrypi] raspberrypi0-2w-32 (Issue #965)
Hello, the problem is you need the dtb, when in 32 bits file structure is different. Take a look at my PR: #972https://github.com/agherzan/meta-raspberrypi/pull/972
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/agherzan/meta-raspberrypi/issues/965#issuecomment-990788027, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARCQC5MS2W7BXJWJ3GHNFI3UQHEBTANCNFSM5JJIB3TA.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Support is now available in master.


Cluster Autoscaler(CAS) fix for Gen1, add CAS support for gen2 clusters

Fix: #212
Fix: #156
This fixes the CallHomeConfig(CHC) reconciliation error. However, while creating the CAS bundle --repo-revision flag doesn't seem to work consequently the Secret containing the kubeconfig credentials doesn't get created automatically. Also, the secret reader role may no longer be needed.
To test the modified CHC controller, be sure to use the 0.10.0-devel-cas-1 tag.
For now create the secret associated with generating the kubeconfig credentials manually by doing a kubectl apply -f on the manifest snippet given below and replace the {{..Values.global.clusterName }} with the actual cluster's name
apiVersion: v1
kind: Secret
metadata:
  namespace: {{ .Values.global.clusterName }}
  name:  cluster-autoscaler-mgmt-kubeconfig
  annotations:
    kubernetes.io/service-account.name: cluster-autoscaler
type: kubernetes.io/service-account-token

On k8s v1.21+ service account objects do not have a token field. The above yaml snippet is used to create a token associated with the said service account. The controller logic is altered to account for this, in the sense that now we create the above mentioned secret and read the credentials (token and ca.crt) from this object. The rest of the logic which involves creating a kubeconfig using this pieces of data and creating it on the workload end is unchanged and only involves the addition of type type: kubernetes.io/service-account-token and an annotation kubernetes.io/service-account.name: cluster-autoscaler.
For Gen2 clusters:
To add CAS support for gen2 clusters, the cluster create sub-command of the arlon CLI has a --autoscaler flag which deploys the capi-cluster-autoscaler helm chart on the management cluster.
The annotations required for capi however, have to be added manually to the basecluster manifest. Under the kind MachineDeployment
Note: @bcle I noticed that we don't use the ClusterSpec.ClusterAutoscalerMinNodes and ClusterSpec.ClusterAutoscalerMaxNodes in gen1 beyond storing it in the ClusterSpec ConfigMap. Please confirm.
   annotations:
     cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size: '1'
     cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: '9'

These annotations are added during the preparegit step where two flags --cas-max and --cas-min have been introduced.
A new Helm parameter clusterFullNameWithInnerCluster was introduced which is used by the CallHomeConfig to find the secret containing the kubeconfig of the workload cluster(this is compatible with gen1 as well).
To create a gen2 cluster with autoscaler, we now need:

a bundle pointing to the bundle/capi-cluster-autoscaler in the arlon repository.
a dynamic profile that contains the above bundle.
a basecluster manifest which has the CAPI annotations for min and max nodes set during the preparegit stage or by hand(if they're already set before running preparegit then preparegit will not reset these annotations).
run arlon cluster create with the repo-path pointing to the basecluster manifest described in setp 3, set the profile to be the one created in step 2 and pass the autoscaler flag

For instance:
arlon bundle create cas-bdl --tags cas,devel,test --desc "CAS Test" --repo-url  https://github.com/arlonproj/arlon.git --repo-path bundles/capi-cluster-autoscaler --srctype helm

arlon profile create dynamic-2 --repo-url https://github.com/ShaunakJoshi1407/arlon-demo --repo-base-path profiles --bundles cas-bdl --desc "dynamic test 2" --tags examples

arlon basecluster preparegit --repo-path daredevil-g2-test --cas-min 1 --cas-max 5 --repo-url https://github.com/ShaunakJoshi1407/arlon-demo

arlon cluster create --cluster-name the-autoscaling-cluster --repo-path daredevil-g2-test --autoscaler --profile dynamic-2

Argocd app logs before removing the service-account-reader:
{Kind:ServiceAccount APIGroup: Name:default Namespace:arlon}. rolebinding.rbac.authorization.k8s.io/arlon-secrets-reader configured. Warning: resource rolebindings/arlon-secrets-reader is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by  apply.  apply should only be used on resources created declaratively by either  create --save-config or  apply. The missing annotation will be patched automatically.

cluster.x-k8s.io                 Cluster                 cas-cluster  cas-cluster                    OutOfSync  Healthy    cluster.cluster.x-k8s.io/cas-cluster created
core.arlon.io                    ClusterRegistration     cas-cluster  cas-cluster                    Synced                clusterregistration.core.arlon.io/cas-cluster created
controlplane.cluster.x-k8s.io    AWSManagedControlPlane  cas-cluster  cas-cluster-control-plane      Synced                awsmanagedcontrolplane.controlplane.cluster.x-k8s.io/cas-cluster-control-plane created
infrastructure.cluster.x-k8s.io  AWSMachineTemplate      cas-cluster  cas-cluster-md-0               Synced                awsmachinetemplate.infrastructure.cluster.x-k8s.io/cas-cluster-md-0 created
cluster.x-k8s.io                 MachineDeployment       cas-cluster  cas-cluster-md-0               Synced     Healthy    machinedeployment.cluster.x-k8s.io/cas-cluster-md-0 created
bootstrap.cluster.x-k8s.io       EKSConfigTemplate       cas-cluster  cas-cluster-md-0               Synced                eksconfigtemplate.bootstrap.cluster.x-k8s.io/cas-cluster-md-0 created
argoproj.io                      Application             argocd       cas-cluster-profile-dynamic-2  Synced                application.argoproj.io/cas-cluster-profile-dynamic-2 created
core.arlon.io                    CallHomeConfig          cas-cluster  cluster-autoscaler             Synced                callhomeconfig.core.arlon.io/cluster-autoscaler created
                                 Namespace                            cas-cluster                    Synced

After removing the service-accounts-reader
GROUP                            KIND                    NAMESPACE    NAME                           STATUS     HEALTH   HOOK  MESSAGE
rbac.authorization.k8s.io        RoleBinding             cas-cluster  arlon-serviceaccounts-reader   Succeeded  Pruned         pruned
rbac.authorization.k8s.io        Role                    cas-cluster  serviceaccounts-reader         Succeeded  Pruned         pruned
                                 Namespace               default      cas-cluster                    Running    Synced         namespace/cas-cluster unchanged
                                 ServiceAccount          cas-cluster  cluster-autoscaler             Synced                    serviceaccount/cluster-autoscaler unchanged
rbac.authorization.k8s.io        Role                    cas-cluster  cluster-autoscaler             Synced                    role.rbac.authorization.k8s.io/cluster-autoscaler reconciled. role.rbac.authorization.k8s.io/cluster-autoscaler unchanged
rbac.authorization.k8s.io        Role                    cas-cluster  secrets-reader                 Synced                    role.rbac.authorization.k8s.io/secrets-reader reconciled. role.rbac.authorization.k8s.io/secrets-reader unchanged
rbac.authorization.k8s.io        RoleBinding             cas-cluster  cluster-autoscaler             Synced                    rolebinding.rbac.authorization.k8s.io/cluster-autoscaler reconciled. rolebinding.rbac.authorization.k8s.io/cluster-autoscaler unchanged
rbac.authorization.k8s.io        RoleBinding             cas-cluster  arlon-secrets-reader           Synced                    rolebinding.rbac.authorization.k8s.io/arlon-secrets-reader reconciled. rolebinding.rbac.authorization.k8s.io/arlon-secrets-reader unchanged
cluster.x-k8s.io                 Cluster                 cas-cluster  cas-cluster                    OutOfSync  Healthy        cluster.cluster.x-k8s.io/cas-cluster configured
core.arlon.io                    ClusterRegistration     cas-cluster  cas-cluster                    Synced                    clusterregistration.core.arlon.io/cas-cluster unchanged
controlplane.cluster.x-k8s.io    AWSManagedControlPlane  cas-cluster  cas-cluster-control-plane      Synced                    awsmanagedcontrolplane.controlplane.cluster.x-k8s.io/cas-cluster-control-plane unchanged
infrastructure.cluster.x-k8s.io  AWSMachineTemplate      cas-cluster  cas-cluster-md-0               Synced                    awsmachinetemplate.infrastructure.cluster.x-k8s.io/cas-cluster-md-0 unchanged
cluster.x-k8s.io                 MachineDeployment       cas-cluster  cas-cluster-md-0               Synced     Healthy        machinedeployment.cluster.x-k8s.io/cas-cluster-md-0 unchanged
bootstrap.cluster.x-k8s.io       EKSConfigTemplate       cas-cluster  cas-cluster-md-0               Synced                    eksconfigtemplate.bootstrap.cluster.x-k8s.io/cas-cluster-md-0 unchanged
argoproj.io                      Application             argocd       cas-cluster-profile-dynamic-2  Synced                    application.argoproj.io/cas-cluster-profile-dynamic-2 unchanged
core.arlon.io                    CallHomeConfig          cas-cluster  cluster-autoscaler             Synced                    callhomeconfig.core.arlon.io/cluster-autoscaler unchanged
                                 Namespace                            cas-cluster                    Synced

Will you address the min/max annotations as well in this PR?

Yes, they'll be addressed in this PR

@Rohitrajak1807 (reminder to self): perform version restores in deploy.yaml and version before merge

Done now. PR has been approved by @bcle , readying for merge


Change venv_metadata_inspector to support venv python 3.5+

Changed some syntax in venv_metadata_inspector.py and to support python 3.5+

Used type comment instead of inline type
Used .format() instead of f-string

Changed help/docs to reflect that venvs support python 3.5+ (not python 3.3+)
Reference: #231

Can we add python 3.5 to the ci to validate this change?

That's a little bit tricky since pipx itself will run python 3.6+, even though it can create venvs that are python 3.5+.

Can we add python 3.5 to the ci to validate this change?

We'd need to have two versions of python installed. One for pipx (3.6+) and one for 3.5.
We could make a specific test in nox that tests this and only runs something like
pipx install pycowsay --python python3.5

fyi @itsayellow if you add a specific keyword followed by an issue number in a pull request, the issue will be automatically closed. It makes the workflow a little easier if you are closing issues out with PRs frequently. https://help.github.com/en/articles/closing-issues-using-keywords#about-issue-references

Sounds good.
Fixes #231

I added a unit test to install a package with python3.5 if it's available, and to skip it if it's not.
Based on the output in travis, there are no s's, which means nothing was skipped, which means python3.5 is available in the 3.6/3.7 linux builds (but not Windows). :tada:

Good stuff @itsayellow, merging!


✨ feat: Split code rust, for run as python lib and rust lib

Split the code rust, for run as python lib and rust lib, to be able to publish in both crates and pypi.
Fixes #24

Correcting sdist, they change this:
recursive-include src *.rs

for this:
recursive-include py-tiktoken *.rs
recursive-include rs-tiktoken *.rs

Hi @hauntsaninja, this is a first version, without changes in the core, only separating the rust in 2, a rs-tiktoken thinking in creating the crate and another py-tiktoken that is the binding for python.
Then you can think about creating more versions like one for java something like jvm-tiktoken because it is really for you to use it from java, scala, etc, but first refine the core that should be in rs-tiktoken.

@hauntsaninja do you think I should add more changes to this PR to have a fully functional rust version?

The MANIFEST.in is fixed and I also separated the workflows for aarch64 into 2:

build_wheels_aarch64_glibc:

y

build_wheels_aarch64_musl:

that's the way it is:

because I see that it is giving an error commits before my changes, this happens in arch64 but the versions that use musl instead of glibc.

Should we deactivate the musl?

What happen? Did I make a mistake? any comments? Is there anything I need to change in order for my PR to be considered?


implement single table inherits

create table t1 inherits t2; in postgres is similar to create table t1 like t2 in mysql
However, postgres supports adding columns and inherting from multiple tables.
There are also some foreign key-like dependencies.

improved version: https://github.com/dolthub/doltgresql/pull/935


Add custom metadata to the history log

To track changes to datasets it would be great if I could add some extra metadata to history log: for example a textual description about the change, an author, timestamp? Similar to how git has it. But also so that datasets used in science would have a clear log of changes to it with sources of those changes.

One thing that we've been sitting on is the idea of 'checkpoints', where you can basically mark a point in the log with a version label and potentially write a message. We probably need to wait for multi-writer to land first, so that we can figure out how those labels will work with multiple authors.

I think this is out of the scope of dat for the forseeable future, but please check out radicle.xyz or http://cobox.cloud/


fix: consider version when getting CRDs for validating descriptors

Description of the change:
An additional condition is included for matching apiVersion of example CRs with CRD version when searching for the CRD in the CSV.
Motivation for the change:
Previously, the olm-spec-descriptors scorecard test failed when multiple versions of CRD is included in the CSV. The CR specified in alm-examples annotations are validated only against the first matched CRD (by name), which is incorrect. This ensures the correct CRD version is selected for validations.
Checklist
If the pull request includes user-facing changes, extra documentation is required:

[x] Add a new changelog fragment in changelog/fragments (see changelog/fragments/00-template.yaml)
[ ] Add or update relevant sections of the docs website in website/content/en/docs

Solves #6781

@tthvo At face value I don't think this PR works, since this info only comes from the alm-examples, and those do not have a versions. The code to get the CR from the bundle is here, maybe I'm missing something.

@tthvo At face value I don't think this PR works, since this info only comes from the alm-examples, and those do not have a versions. The code to get the CR from the bundle is here, maybe I'm missing something.

Hi, I guess what I meant is to compare the apiVersion of the object in alm-examples annotations with the owned CRD's version field. This is a very similar issue/fix to https://issues.redhat.com/browse/OCPBUGS-34901 that we reported.
https://github.com/operator-framework/operator-sdk/blob/e95abdbd5ccb7ca0fd586e0c6f578e491b0a025b/testdata/go/v4/memcached-operator/bundle/manifests/memcached-operator.clusterserviceversion.yaml#L8
https://github.com/operator-framework/operator-sdk/blob/e95abdbd5ccb7ca0fd586e0c6f578e491b0a025b/testdata/go/v4/memcached-operator/bundle/manifests/memcached-operator.clusterserviceversion.yaml#L47

Sorry I forgot to include a way to test these changes. You can try:

Scorecard image: quay.io/thvo/scorecard-test:dev
Bundle image with >= 2 owned CRD versions (v1beta1 and v1beta2): quay.io/thvo/cryostat-operator-bundle:4.0.0-olm. CSV is here: https://gist.github.com/tthvo/08402b93f8ef4e9a0dd6117b3253224a

Run: operator-sdk scorecard -n default -s default quay.io/thvo/cryostat-operator-bundle:4.0.0-olm --selector=suite=olm. That should succeed. Previously, if you use the scorecard image on quay.io/operator-framework, it fails.

Hi, any update on getting this fixed? Our workaround of removing the v1beta1 CRD from alm-examples is generating the following warning with each build/test:
Warning: Value operator.cryostat.io/v1beta1, Kind=Cryostat: provided API should have an example annotation
It would be nice to have clean test results, but that depends on this bug being fixed.

@tthvo Could you rebase your PR? thanks.

@tthvo Could you rebase your PR? thanks.

Hey @acornett21, I rebased it now (with a small cleanup). Thanks :D

/override docs


Gitea cannot start

Description
Mar 26 22:16:00 dub20 gitea[1913129]: 2023/03/26 22:16:00 ...y_authorized_keys.go:136:RewriteAllPublicKeys() [E] Unable to MkdirAll(/home/git/.ssh): mkdir /home/git: permission denied
Mar 26 22:16:00 dub20 gitea[1913129]: 2023/03/26 22:16:00 routers/init.go:61:mustInit() [F] code.gitea.io/gitea/models/asymkey.RewriteAllPublicKeys failed: mkdir /home/git: permission denied
Mar 26 22:16:00 dub20 systemd[1]: gitea.service: Main process exited, code=exited, status=1/FAILURE
Mar 26 22:16:00 dub20 systemd[1]: gitea.service: Failed with result 'exit-code'.
Gitea Version
v1.19.0-rc0
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
No response
Git Version
2.30.2
Operating System
Debian
How are you running Gitea?
Binary install
Database
MySQL

What user is gitea being run as and what user owns /home/git ?

Well... there is no /home/git folder.  I caught the process:
git         1720       1  0 20:26 ?        00:00:00 /usr/local/bin/gitea web --config /etc/gitea/app.ini

root@dub20:/home/williew# /usr/sbin/adduser
--system
--shell /bin/bash
--gecos 'Git Version Control'
--group
--disabled-password
--home /home/git
git
The system user `git' already exists. Exiting.
root@dub20:/home/williew# cd ..
root@dub20:/home# ls
lost+found  williew

Then you need to mkdir /home/git and make git user as its owner, because you declares that  --home /home/git

Works finally! Thanks so much!


Missing "window.screen"

E.g.
external availHeight: int = "" [@@bs.val] [@@bs.scope "window", "screen"]
external availWidth: int = "" [@@bs.val] [@@bs.scope "window", "screen"]

Basically same answer as in #134. Feel free to post here as well if you have questions about it.