[feat]: Shareable custom themes

Feature description
Originally asked on Twitter here (minutes ago)

Could we add a way to set up own custom themes & palettes and share them via a link so others can use them?
Custom theme values wouldn't even need to be stored in a database; they could just be stored in query params for sharing and then session storage.
Affected component/components
Website, Themes
Additional Context
No response
Before submitting

[X] I've made research efforts and searched the documentation
[X] I've searched for existing issues and PRs

This sounds interesting. Maybe base64 could be used to encode the theme and when you load onto the website, javascript will grab the query params and decode that back into css?

This issue has been automatically closed because it received no activity for a while. If you think it was closed by accident, please leave a comment. Thank you.

@shadcn Yes, please reopen. Custom themes are a priority.


Double WWW checks

Hi, for one of my sites I get double WWW Statuses in the summary. One is ok the second one is CRIT. I can't find a way to get around this as everything is ok on the site. Where does the second WWW come from?

Is this a bug?

Has anyone found a solution?


Rework call handling for smaller footprint and less duplication

Rework call handling to reduce footprint and duplication:

Remove internal duk_handle_call_protected() and implement protected calls using duk_safe_call() wrapping.
Remove separate Ecma-to-Ecma call setup helper and add Ecma-to-Ecma call support to duk_handle_call_unprotected().

Several smaller changes:

Rework call handling to use small helper functions for better readability.
Rework DUK_OP_NEW so that default instance is created by bytecode and DUK_OP_CONSCALL (replaces DUK_OP_NEW) is just an ordinary call with a constructor flag set.
Remove special handling for initial resume call.
Support Ecma-to-Ecma calls for eval(xxx) calls when the target function is not actually eval but a shadowing Ecmascript function (this worked before 2.0 release also).
Use internal duk_remove_n() primitive to improve tailcall handling value stack manipulation.
Remove value stack reserve adjustments from duk_safe_call(): caller must ensure them and safe calls shouldn't adjust the reserve.
Reduce internal valstack extra from 64 to 32 (could maybe be reduced to 16 or 24); entry to Duktape/C function now automatically reserved 64 + 16 elements (64 is the user reserve guaranteed on entry).

Tasks:

[ ] Finalize changes
[ ] Testcase coverage
[ ] Manual full assertion run
[ ] Documentation
[ ] Releases entry
[ ] 2.2 migration notes: internal reserve change, duk_safe_call() reservation behavior

@fatcerberus This is slowly becoming merge ready - if you have time it'd be interesting to hear if this breaks anything in Minisphere as there are quite a lot of (useful :) changes in the pull. I haven't run a full torture+assertion run yet which takes a long time but will do that before merging.
There are still a few call handling things I'd like to fix but most of the hard changes will be in master with this. Remaining things include:

Ability to yield from eval(), and making eval() code appear more usefully in a call stack, #1548
Tailcall for eval()
Allowing more call/new parameters

Quick initial test suggests everything is working as designed.  No misbehavior that I could see.  I'll use this branch for a bit internally and let you know if anything weird happens.

Thanks, good to hear :) Besides footprint reduction the pull also improves call handling performance a bit (very roughly 5%). Probably not visible in Minisphere though.

I haven't measured it so it could just be a placebo effect, but TypeScript transpilation in Cell seems a bit faster at least. :)

This is merged, goody. :)


Route parameters reading from [Parameter] attribute rather than @page

Describe the bug
Adding the following parameter
var component = ctx.RenderComponent<TestComponent>(parameters => parameters.Add(x => x.Id, "123"));
results in ParameterView populating using "Id" from the [Parameter] attribute rather than lowercase "id" from @page.
TestComponent.razor:
@page "/test/{id}"

@code{
    [Parameter] public string? Id {get; set;}
}

Version info:

bUnit version: 1.6.4
.NET Runtime and Blazor version: .NET 6.0.101
OS type and version: Windows 11

Hey @andersson09,
I guess you are referring to the OnParameterSet method where your Id is passed value „123“?
Maybe can you explain exactly what the seen problem is or what would be your expected behavior?
In general the @page directive is meant for the Blazor pipeline. So in your case if you navigate to that page the navigation manager and the Router will take off setting those Parameters according to your URL. That is likely something you don’t want to test. Mainly because you would start to test 3rd party library code. You can rely on the fact that Blazor does its job and set your ID accordingly.
See it from a different point of view: You as a developer / user of Blazor, you don‘t have the chance to interact directly with the @page directive, but you you can directly set parameters of components. And that is the path you can and should test.
I hope that makes sense to you. Please feel free to ask any questions.
Cheers Steven

The problem I face is that I have a base component that reads the ParameterView from OnParameterSet. The feature I'm testing has an attribute that passes the parameter name id lowercase. The base component cannot find id because bUnit populates the ParameterView with Id instead. This behaves differently to Blazor where the ParameterView is populated id.

Currently I don‘t any PC around me only mobile, so need 2 days to reproduce.
But anyway, can you share that specific code snippet?
The easiest fix on top of my head would be renaming the page to an uppercase Id instead of id: @page “/test/{Id}“ this should at least make the entry in the ParameterView identical to your parameter. See here for the example Microsoft provides.
To be honest I am surprised that it‘s lowercase in the first place, because by convention the parameters should be CamelCase.

Back at a regular PC I could verify your behavior. In SetParametersAsync the key gets passed as it is defined in the @page declaration, meaning we have id instead of Id.
If you have logic which is relying on that I would still suggest to rename in camel case (to Id). This will also enabled you to use nameof(...) to be a bit more resilient when you refactor code.
But anyway, if you need this the way it is bUnit does not have this at the moment. More or less this would be new functionality and not a bug per se.
But: You can do this without bUnit and just write a regular unit test like this:
[Fact]
public async Task ShouldSetPropertiesCorrectly()
{
    var component = new ComponentWithAuth();
    var parameterToValue = new Dictionary<string, object?> { { "id", "123" } };
    var parameterView = ParameterView.FromDictionary(parameterToValue);

    await component.SetParametersAsync(parameterView);

    // Assert

}

You can create a  ParameterView object from a dictionary. Thus plus the fact that SetParametersAsync is public lets you exactly unit test your behavior.

Hey,
Thanks for investigating. Yea I have changed my parameters to pascalcase like you suggested. The issue raised was more for indicating that bUnit was behaving differently to Blazor.
Also, thanks for the alternative solution :)

Sure @andersson09. Do you want to close this issue or do you consider this a feature you want to see?
Maybe a small amendment to

bUnit was behaving differently to Blazor.

The function you use "simulated" how one would construct a component and there you would use the "real" parameter-object. Like <MyComponent Id="123"></MyComponent>

Yep, I think this is fine to close.


The backup and restore don't point to the same directories

It seems that the directory ns3290519.the-captains-shack.com the latest backup but is not the one restored.

Origin directory is not setup correctly. This should be a parameter

The hostname has been changed to be more consistant but the change was not recorded in the script :-(


WIP: Add propagation to external services

Fixes #385
cc @guicassolato
Verification steps courtesy @guicassolato :
Step 1: Initialize cluster
make cluster install build

Step 2: Bring up authorino
bin/authorino server --tracing-service-endpoint http://localhost:14268/api/traces

Step 3: Apply auth-config
apiVersion: authorino.kuadrant.io/v1beta1
kind: AuthConfig
metadata:
  name: talker-api-protection
spec:
  hosts:
  - talker-api-authorino.<IP_ADDRESS>.nip.io
  metadata:
  - name: echo
    http:
      endpoint: https://echo-api.3scale.net/
  response:
  - name: echo
    json:
      properties:
      - name: response
        valueFrom:
          authJSON: auth.metadata.echo

Step 4: Sending an external authorization request to a gRPC server using grpcurl
for repo in \
envoyproxy/data-plane-api \
googleapis/googleapis \
envoyproxy/protoc-gen-validate \
cncf/udpa
do
git clone git@github.com:$repo /tmp/authorino-grpc-client/$repo
done

brew install grpcurl

grpcurl -import-path /tmp/authorino-grpc-client/envoyproxy/data-plane-api  \
        -import-path /tmp/authorino-grpc-client/googleapis/googleapis \
        -import-path /tmp/authorino-grpc-client/envoyproxy/protoc-gen-validate \
        -import-path /tmp/authorino-grpc-client/cncf/udpa \
        -proto /tmp/authorino-grpc-client/envoyproxy/data-plane-api/envoy/service/auth/v3/external_auth.proto \
        -plaintext -d '{"attributes":{"request":{"http":{"host":"talker-api-authorino.<IP_ADDRESS>.nip.io"}}}}' \
        localhost:50051 \
        envoy.service.auth.v3.Authorization.Check

The response should look something like this
"status": {

  },
  "okResponse": {
    "headers": [
      {
        "header": {
          "key": "echo",
          "value": "{\"response\":{\"args\":\"\",\"body\":\"\",\"headers\":{\"CONTENT_TYPE\":\"text/plain\",\"HTTP_ACCEPT_ENCODING\":\"gzip\",\"HTTP_HOST\":\"echo-api.3scale.net\",\"HTTP_TRACEPARENT\":\"00-93b16549c5f367af4478a61dcdfc54e0-2a038657302c4690-01\",\"HTTP_USER_AGENT\":\"Go-http-client/1.1\",\"HTTP_VERSION\":\"HTTP/1.1\",\"HTTP_X_ENVOY_EXPECTED_RQ_TIMEOUT_MS\":\"15000\",\"HTTP_X_ENVOY_EXTERNAL_ADDRESS\":\"<IP_ADDRESS>\",\"HTTP_X_FORWARDED_FOR\":\"<IP_ADDRESS>\",\"HTTP_X_FORWARDED_PROTO\":\"https\",\"HTTP_X_REQUEST_ID\":\"be1eac9d-d925-4159-97c2-5aa235ee46bc\"},\"method\":\"GET\",\"path\":\"/\",\"uuid\":\"5e60b641-d7cd-496c-a594-ef30d5437467\"}}"
        }
      }
    ]
  },
  "dynamicMetadata": {
    }
}

Working:
In main.go  we first set the propagator
otel.SetTextMapPropagator(otel_propagation.NewCompositeTextMapPropagator(otel_propagation.TraceContext{}, otel_propagation.Baggage{}))

Then  use the Getter to get traceContext and Baggage and inject them into the request headers
otel.GetTextMapPropagator().Inject(ctx, otel_propagation.HeaderCarrier(req.Header))

@guicassolato Thoughts on testing this? We need to extract the information and add tracing to the external services, right?

@Rohith-Raju,
I tested the changes today. In general, it's all right. The PR does what it's expected to do, mostly.
There are just a couple things that I didn't have time to investigate further but might be worth tackling.

Traces are only propagated into external service calls when a tracing provider is initialised, i.e. when --tracing-service-endpoint is provided; otherwise no trace is injected. I'm not sure if this is what we want. Maybe yes. At the same time, I can't help thinking that Authorino pushing telemetry to the trace provider is one thing and propagating to external services is another, and those things should be independent from each other to an extent. Like, maybe Authorino is not emitting traces, but the external service is. In this case, Authorino would break the chain altogether (instead of just being a jump between two external spans).
Baggage is not being propagated into external service calls at all. This one is more concerning. Maybe it's an issue with the instrumentation library for GRPC? Or maybe it's Envoy. Anyway, this needs investigation.

I'm pretty sure these are not this PR's fault. Nevertheless, it feels we could sync this and the fixes together, maybe?
At least about # 2 above we need to be certain before merging the PR, because users will probably expect baggage to the propagated as well.

Traces are only propagated into external service calls when a tracing provider is initialised, i.e. when --tracing-service-endpoint is provided; otherwise no trace is injected. I'm not sure if this is what we want. Maybe yes. At the same time, I can't help thinking that Authorino pushing telemetry to the trace provider is one thing and propagating to external services is another, and those things should be independent from each other to an extent. Like, maybe Authorino is not emitting traces, but the external service is. In this case, Authorino would break the chain altogether (instead of just being a jump between two external spans).

@guicassolato, We could introduce another flag that takes care of this or set tracing to be turned on by default unless disabled explicitly or some other way. But this could take a toll on user experience. WDYT

At least about # 2 above we need to be certain before merging the PR, because users will probably expect baggage to the propagated as well.

Yes, let's do it. 😄

We could introduce another flag that takes care of this or set tracing to be turned on by default unless disabled explicitly or some other way. But this could take a toll on user experience. WDYT

IDK if I follow 100%, but if introducing new flags + enabling tracing by default is our only option here, I prefer not to propagate traces into external service calls. Let's leave it for only when Authorino is reporting traces and this line goes back inside of the if.

Baggage is not being propagated into external service calls at all. This one is more concerning. Maybe it's an issue with the instrumentation library for GRPC? Or maybe it's Envoy. Anyway, this needs investigation.

@guicassolato I manually added baggage by
bagMember, err := baggage.NewMember("baggageKey", "bagevalue")
	if err != nil {
		return nil, err
	}
	bag, err := baggage.New(bagMember)
	if err != nil {
		return nil, err
	}
	ctx = baggage.ContextWithBaggage(ctx, bag)
	otel.GetTextMapPropagator().Inject(ctx, otel_propagation.HeaderCarrier(req.Header))

And the Response
{
  "status": {

  },
  "okResponse": {
    "headers": [
      {
        "header": {
          "key": "echo",
          "value": "{\"response\":{\"args\":\"\",\"body\":\"\",\"headers\":{\"CONTENT_TYPE\":\"text/plain\",\"HTTP_ACCEPT_ENCODING\":\"gzip\",\"HTTP_BAGGAGE\":\"baggageKey=bagevalue\",\"HTTP_HOST\":\"echo-api.3scale.net\",\"HTTP_TRACEPARENT\":\"00-739d0ae53ea0feac8c84ce0908e02f21-24d6a23e876f319a-01\",\"HTTP_USER_AGENT\":\"Go-http-client/1.1\",\"HTTP_VERSION\":\"HTTP/1.1\",\"HTTP_X_ENVOY_EXPECTED_RQ_TIMEOUT_MS\":\"15000\",\"HTTP_X_ENVOY_EXTERNAL_ADDRESS\":\"<IP_ADDRESS>\",\"HTTP_X_FORWARDED_FOR\":\"<IP_ADDRESS>\",\"HTTP_X_FORWARDED_PROTO\":\"https\",\"HTTP_X_REQUEST_ID\":\"b193b8df-133d-4dbf-88ff-314581fbebb9\"},\"method\":\"GET\",\"path\":\"/\",\"uuid\":\"6240a839-a9a1-4108-af4a-02847480b230\"}}"
        }
      }
    ]
  },
  "dynamicMetadata": {
    }
}

Baggage is being propagated 🎉
"HTTP_BAGGAGE\":\"baggageKey=bagevalue\"

Maybe the baggage is not populated in the previous scenario? WDYT

@guicassolato If your concern was whether we could propagate baggage data? Then worry no more 😄 . I manually added baggage by

@Rohith-Raju, we need to make sure the instrumentation1,2,3 is taking care of extracting the Baggage data automatically and injecting it into the request to the external service. If it's not, then likely the problem is in the extraction part.
1 https://github.com/Kuadrant/authorino/blob/a6cc9063eee73bd619667fda71f8a559593c7894/main.go#L193
2 https://github.com/Kuadrant/authorino/blob/a6cc9063eee73bd619667fda71f8a559593c7894/main.go#L311-L312
3 https://github.com/Kuadrant/authorino/blob/a6cc9063eee73bd619667fda71f8a559593c7894/main.go#L369

Sure, that makes sense.

@guicassolato, Thanks for merging the Pr

Another important finding was that tracing does not have to be enabled in Authorino for traceparents and baggage data detected in the incoming authorization requests to be injected into the outgoing ones.

Sure, I'd love to. I'm caught up this week with my college exams. will take it up next week


Failing test: extra space after 'if ... then return end'

Hi, another bug ;-)
This time with a test attached, is this useful?

Good find! Should be resolved now - thanks 👍


feat: Track and use entity resolution time

Motivation

Tracking entity specific resolution time helps improve entity freshness in cases where custom data-specific merging tracking is not provided. There are several cases that will shortly be using the improved tracking of data age at an entity level:

stale-while-revalidation staleness guarantees when inferring results
resolving fully normalized persistence caches (@0xcaff )

Solution

Add entityMeta as top level state member. This tracks the same shape as entities, but with the data of { date: number }.
  entityMeta: {
    readonly [entityKey: string]: {
      readonly [pk: string]: { readonly date: number };
    };
  };

This affects merges by potentially changing the order of arguments sent to SimpleRecord.merge(). The second argument is considered 'priority' over the first - as far as the rest hooks cache is considered. User-implemented merge functions can either factor that in to their merge or choose to ignore it.
Previously, the currently processed data was sent as the second 'priority' argument to take precedence over any existing entities. However, now if there is any staleness information, it is used to inform said ordering.
For example, the default merge() copies the 'incoming' replacing 'existing' properties when found.
  static merge<T extends typeof SimpleRecord>(
    this: T,
    existing: AbstractInstanceType<T>,
    incoming: AbstractInstanceType<T>,  // this is the priority
  ) {
    const props = Object.assign(
      this.toObjectDefined(existing),
      this.toObjectDefined(incoming),
    );
    return this.fromJS(props);
  }

Alternatives considered
We did consider storing the recency data in the entity itself.
Pros:

potentially more efficient updates
simpler data traversal

Cons:

we infect 'normalizr' code with concerns of the cache implementation
awkward extra data in what should be an object that most exactly reflects what the user expects.

Another note is that in the future when Entities themselves are not actually stored in state, we could shuffle around where the date information is stored.

Ya, I'm there with you. I feel less bad since its not exposed even as a 'hidden' export. They have made a lot of improvements about expressing recursive types recently so progress is being made.


TB4 not under control

Please provide the following information:

OS: Ubuntu 20.04
ROS Distro: Galactic
Built from source or installed:
Package version: sudo dpkg -s ros-ROS2-turtlebot4-PACKAGE_WITH_ISSUE`

Expected behaviour
The robot should be controlled by the directional keys
Actual behaviour
While driving the TurtleBot4 Lite version, the chassis does not respond to directional keys. Pressing the forward key causes it to continuously spin in place, and there have been instances where pressing the left or right keys also only makes it move forward. Rebooting the machine and upgrading the Create3 chassis have not resolved the issue. However, occasionally, it can be controlled using keyboard functions. What could be causing this, and are there any solutions?
https://github.com/turtlebot/turtlebot4/assets/75788043/aa3a0221-6fe7-4335-b3ff-409d6d76a551
To Reproduce
Provide the steps to reproduce:

run something
launch something else
see the error

Other notes
Add anything else you thing is important.

I may not have clearly stated this issue. My directional keys are controlled by i, j, and l, but I know they are used to indicate forward. The main problem is that when I press i to advance, TB4 rotates in place, as shown in the video, and I keep pressing i to advance

Thank you for the clarification. Have you tried echoing the /cmd_vel topic to make sure that only the commands that you expect are being seen there and that they correspond with the commands that you are sending?
If you can replicate this issue, can you please provide the create3 log of one such occurence?

This issue is being closed due to inactivity. If you are still experiencing the issue, feel free to reopen this ticket when you are ready to continue the troubleshooting process.


Create RichAndHealthy Section

Create a RichAndHealthy Section in Organism folder
Should be used reusable components
It should match to our UIX design

i wanna work on this


.dat file for 194 Face Landmark Points using the Helen Dataset

Hi,
Can you please provide the .dat file for 194 Face Landmarks, it would be of immense help and I can actually see a lot of people need it.
P.S. dlib is great.

I don't have one.


Add presets for common place of worship denomination values

https://taginfo.openstreetmap.org/keys/denomination#values
I did not add mormon since there is debate as to whether that is the correct value. I did add quaker even though it isn't especially common since it's important not to call Quaker meeting places "churches".
Additional denomination presets are welcome.

Why not just leave it as a dropdown like it was before?   People have to translate all these now...

Translation was part of the reason I added these, since the dropdown isn't translatable. No problem if you want me to revert it!

For what it’s worth, denomination names are some of the more straightforward things to translate in my experience. A lot of denominations evangelize, so there are established translations for their names in many languages. (From my perspective it’s the piste presets that have become a rabbit hole! 😄)


Flickering Keyboard on iOS with secureTextEntry Inputs

Description
After integrating the posthog-react-native-session-replay library into my React Native project, I encountered a problem on iOS devices. When typing into text inputs that use the secureTextEntry prop, the keyboard begins to flicker and behave inconsistently.
I am using the <Field> component from the formik library for input handling.
Steps to Reproduce

Set up a React Native project with the following library versions:

posthog-react-native: ^3.3.10
posthog-react-native-session-replay: ^0.1.8
formik: ^2.4.6

Configure posthog-react-native with the following options:enableSessionReplay: true,
sessionReplayConfig: {
    maskAllTextInputs: true,
    maskAllImages: true,
    maskAllSandboxedViews: true,
    captureLog: true,
    captureNetworkTelemetry: true,
    androidDebouncerDelayMs: 1000,
    iOSdebouncerDelayMs: 1000,
},

Expected Behavior
The keyboard should remain stable and functional while typing in a secureTextEntry input field.
Actual Behavior
The keyboard flickers and intermittently disappears and reappears while typing, causing significant usability issues.
Video
https://github.com/user-attachments/assets/0370fb66-2819-4742-8dba-a35d97ee60a3

Thanks @fedarenchyk
Going to look into it.
@ioannisj ideas? I think you can test pretty much with a normal secure component, I don't think formik does anything special here since its a react library and no native code

@fedarenchyk just to confirm, are you using https://github.com/jaredpalmer/formik or https://github.com/bamlab/react-native-formik?

@marandaneto we are using https://github.com/jaredpalmer/formik thanks!


TypeError: Cannot read properties of undefined (reading 'toLocaleDateString')

Describe the bug
To Reproduce
Expected behavior
Screenshots

Applicable Versions:

Netlify CMS version<EMAIL_ADDRESS>Git provider: github
Browser version: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36

CMS configuration
backend:
  name: github
  repo: oort-dev/docs-site
  branch: main
media_folder: docs/assets
public_folder: /assets
logo_url: https://storage.googleapis.com/oort-marketing/assets/img/oort_logo_dark.png
collections:
  - sortable_fields:
      - commit_date
      - title
      - date
      - commit_author
    view_filters: []
    name: doc
    folder: docs
    view_groups: []
    publish: true
    label: Doc
    fields:
      - label: Template Key
        name: templateKey
        widget: hidden
        default: docTemplate
      - name: title
        label: Title
        required: true
        default: ""
      - name: path
        label: Path
        required: true
      - name: date
        label: Date
        widget: datetime
      - label: Author
        name: author
        widget: hidden
        disabled: true
      - name: tags
        label: Tags
        widget: list
      - name: body
        label: Body
        widget: markdown
        required: true
    type: folder_based_collection
    create: true
publish_mode: simple
slug:
  encoding: unicode
  clean_accents: false
  sanitize_replacement: "-"

Additional context

Hi, we believe that you have a problem, but in order for anybody to help you, you need to provide as much detail as possible. The issue template contains the bare minimum of what is required (how to reproduce, expected behaviour, screenshots, etc..).
I'm closing this issue for now. If the problem persists, please open a new issue with all of the details filled out. Also, before posting a new issue, please verify that everything is all right with your environment (computer, internet, browser) and verify whether this issue was already reported by someone else. For general help, please turn to our Slack.


restore nav background

cc @ellisonbg

Opps, thanks for catching this!

No problem. You did all the hard work !


Make hash method return whole numbers

Noticed the marble color for average looked off (https://github.com/staltz/rxmarbles/issues/8), made the hash function return whole numbers as a fix. What do you think?

Yes! Thanks!


Parameter cleanup

This PR contains two commits:

A commit for cleaning up the documentation and usage of the RV32B parameter for the bitmanip extension. In some places we were still expecting a bit parameter (instead of enum), and in some places it was still marked as "experimental".

A commit to replace the previous bit parameter RV32M and the string parameter MultiplierImplementation by a single enum parameter RV32M that can have the values: RV32MNone, RV32MSlow, RV32MFast and RV32SingleCycle.

I am currently running a full regression with RISCV-DV.

Thanks @imphil for your review!

Just to confirm I'm still remembering things right: we need to take the detour with the define setting the parameter because fusesoc always adds quotes around strings when passing them to the tools, which we shouldn't do for names of enum constants?

I thought it was just a problem with certain tools like VCS but I don't exactly remember why we did the work around with the define.

Update: I found the original discussion that lead us to add the defines: https://github.com/lowRISC/ibex/issues/89#issuecomment-641416561
Seems they were originally required for passing strings to VCS. I shall have a look if we can remove them for the enums.

Alright, what's actually happening: For both the SystemVerilog enum parameters as well as the previous SystemVerilog string parameter MultiplierImplementation we are declaring the datatype in FuseSoC as string or str. We then use FuseSoC command line arguments to override the default values in the top level of the build. Overwriting these FuseSoC string parameters from the command line is what seems not to be supported by VCS. That's why the detour via define is needed.
This also means, the define is only needed in top levels that we build in VCS such as the Ibex simple system and the UVM testbench. Other files like ibex_core.sv and ibex_core_tracing.sv are not affected as they are never used as top level. I will remove the defines from these files and document this issue.

FYI, I keep getting one failure in the regression suite (riscv_debug_branch_jump_test) but that one is also failing on master.

I am merging this now.

Thanks Pirmin, really nice clean-up (and annoying to do, as the diff shows).


UUIDv1 includes too much variation

Describe the bug
UUIDv1 does not appear to be generating correctly
To Reproduce
Steps to reproduce the behavior:

Open app
Select UUID tool, v1
Hit Generate UUID(s) multiple times

Expected behavior
Output to show consistent data in the later segments of the generated UUID
Screenshots

Configuration (please complete the following information):

Win10 21H1 19043.1387
Theme: System (Dark)
Version <IP_ADDRESS> | X64 | RELEASE | ef783c8 | ef783c8

Additional context
https://www.sohamkamani.com/uuid-versions-explained/
https://www.uuidgenerator.net/version1

Hello,
Thanks for sharing this. I will try to take a look at it sometime. :)

@JyeGuru @veler  I'm not sure if this is necessarily bug, but rather a different variant of the UUIDv1.  Per RFC4122, these UUID's typically use the system's MAC address for a portion of the UUID, however random/pseudo-random numbers can be used if you do not want the UUID to identify the system the UUID was generated on. (See section 4.5 of the RFC)

My interpretation of RFC4122 4.5 would be that the Node ID would be a consistent randomly-sourced identifier, if not using the hardware ID. In cases such as the linked sites above, they do not generate UUIDv1 values that use the system MAC (as I don't believe that is even available for the browser to use), but they are still internally consistent each time the page is loaded, and sometimes between loads - potentially using some other browser-available data to generate a reasonably consistent Node ID from a hash as mentioned at the end of section 4.5.
If not permanently consistent (using some hashed system ID values) on a given machine, I would at least have expected that the UUIDv1 values generated within a single instance of the tool to have a consistent Node ID.


[CODEGEN][OPENCL] Explicitly cast min/max operands

OpenCL codegen needs explicit casts to min/max operands to avoid ambiguous call errors.
This will fix the reported bug in https://discuss.tvm.ai/t/relay-opencl-quantization-error/5963
#2821 looks no longer necessary, so this PR also reverts it.
@lixiaoquan @tqchen please help to review.

Thanks @kazum !


[Event Request] Table 1003

Publisher needed in Table 1003, end of the function FilterLinesWithItemToPlan:
OnAfterFilterLinesWithItemToPlan(VAR Item : Record Item)

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


hide hold option for invoices

Details
I removed the hold option for invoices, as invoices cannot be on hold.
Fixed Issues
$ https://github.com/Expensify/App/issues/47570
PROPOSAL: https://github.com/Expensify/App/issues/47570#issuecomment-2296506811
Tests

Click FAB.
Select the send invoice option.
Create an invoice with some amount and send it to another user.
Right-click on the invoice preview you just created to open the floating context menu.
Make sure there is no "Hold" option shown in the list.
Open the invoice by clicking the invoice preview.
Click on the invoice header to open the invoice details side-drawer.
Make sure there is no "Hold" option shown.

That is make sure there is no hold option shown for the invoices in these two places.

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

Click FAB.
Select the send invoice option.
Create an invoice with some amount and send it to another user.
Right-click on the invoice preview you just created to open the floating context menu.
Make sure there is no "Hold" option shown in the list.
Open the invoice by clicking the invoice preview.
Click on the invoice header to open the invoice details side-drawer.
Make sure there is no "Hold" option shown.

That is make sure there is no hold option shown for the invoices in these two places.

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
No hold option shown in these two places for invoices.

Android: mWeb Chrome
No hold option shown in these two places for invoices.

iOS: Native
No hold option shown in these two places for invoices.

iOS: mWeb Safari
No hold option shown in these two places for invoices.

MacOS: Chrome / Safari
web.webm

MacOS: Desktop
desktop.webm

I have read the CLA Document and I hereby sign the CLA
recheck

recheck

Code looks fine. let me work on platform testing

@mjasikowski Could you kindly run the approval steps? To avoid any lint errors after C+ testing?

@abdulrahuman5196 done

@codewaseem Some of the tests are failing. Could you kindly merge with main and fix any issues if present?

@abdulrahuman5196 I have replaced the usage withOnyx with useOnyx hook which was causing lint errors based on the updated eslint rules. Can you please recheck? Thanks.

@mjasikowski We are not even updating onyx data in this PR as per the original issue. Do we still need to the onyx migration?

@mjasikowski We are not even updating onyx data in this PR as per the original issue. Do we still need to the onyx migration?

@mountiny can you comment on this one?

let's not do the migration in this PR. Can you please revert to withOnyx and let's merge this with the failing action? This is a complex component so I think we should migrate it in a specific PR where we will test the component thoroughly

@mountiny @mjasikowski @abdulrahuman5196
I have reverted to withOnyx HOC as before.

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

https://github.com/user-attachments/assets/9ff0367f-1c53-4bba-8b6f-1ebaa7a6b5f0

Android: mWeb Chrome

https://github.com/user-attachments/assets/19a5bcf8-72c7-4e25-9658-4575ac66f425

iOS: Native

https://github.com/user-attachments/assets/8429d537-3d9a-43e7-80fa-0e4dc8f01236

iOS: mWeb Safari

https://github.com/user-attachments/assets/443d2634-8c4c-44a6-b161-dfe1d4c8f55b

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/294e9b4a-a06b-4295-9abf-e54956762907

MacOS: Desktop

https://github.com/user-attachments/assets/c150cfd6-890e-4a26-94c0-d92392f51486

The checks failure are not related to this PR. We should be fine to go ahead.

ESLint failures were unrelated

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.


[DOCS] Updated data types links

Referencing issue (https://github.com/arraiyopensource/torchgeometry/issues/47)
Updated the data type link from Tensor to torch.tensor in various functions of torchgeometry.image

@kajal-puri should we close this ?

closing this since it's mostly covered now


Enable "gosimple" linter plugin

What this PR does / why we need it:
Simplifies some code as suggested by the gosimple plugin to gometalinter and enables that plugin for the make test-style target.
~(We can't run this plugin in general for linting, however, because it suggests some incorrect changes to pkg/api/types_test.go.)~
Special notes for your reviewer:
Obviously not a critical change, but I've had this branch sitting around for a month so I freshened it up and made a PR.
If applicable:

[ ] documentation
[ ] unit tests
[ ] tested backward compatibility (ie. deploy with previous version, upgrade with this branch)

Release note:

NONE

/lgtm


Support for Content-Type on each part of a multi-part form

Checklist

[X] I've searched for similar feature requests.

What enhancement would you like to see?
I would like to be able to do the equivalent of this curl command:
$ curl -v -X PUT https://example.com/ -F "metadata={some: data};type=application/json" -F "file1=@some/file.binary;type=application/octet-stream"

Using curl's --trace-ascii feature, the above results in something like this:
0000: PUT / HTTP/1.1
001e: Host: example.org
0034: User-Agent: curl/7.74.0
004d: Accept: */*
005a: Content-Length: 1014
0070: Content-Type: multipart/form-data; boundary=--------------------
00b0: ----b0115f32bd629a31
00c6:
=> Send data, 1014 bytes (0x3f6)
0000: --------------------------b0115f32bd629a31
002c: Content-Disposition: form-data; name="metadata"
005d: Content-Type: application/json
007d:
007f: {some: data}
008d: --------------------------b0115f32bd629a31
00b9: Content-Disposition: form-data; name="file1"; filename="file.binary"
00fb: Content-Type: application/octet-stream
0123:
0125: Some bytes here
03c8: --------------------------b0115f32bd629a31--

I've attempted a few things with httpie, but I don't see a way to get the application/json component to come through on the other end. Is this possible?
What problem does it solve?
It allows each part of a multi-part form to have its own Content-Type.

HTTPie supports this use case, but it only allows you to specify the type when you load the contents from a file (i.e., it doesn’t currently support specifying the type for string fields).
This would be the equivalent:
# Prepare files to upload:
$ echo json > /tmp/test.json
$ echo binary > /tmp/test.bin

# Make request:
$ http --offline --multipart PUT example.com \
    'metadata@/tmp/test.json;type=application/json'  \
    'file1@/tmp/test.bin;type=application/octet-stream'

PUT / HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 340
Content-Type: multipart/form-data; boundary=eba2bec894024119814db278f9dd5da1
Host: example.com
User-Agent: HTTPie/2.4.0

--eba2bec894024119814db278f9dd5da1
Content-Disposition: form-data; name="metadata"; filename="test.json"
Content-Type: application/json

json

--eba2bec894024119814db278f9dd5da1
Content-Disposition: form-data; name="file1"; filename="test.bin"
Content-Type: application/octet-stream

binary

--eba2bec894024119814db278f9dd5da1--

I did realize that there is one way that using the file to upload the JSON is not quite equivalent to sending it the way curl does. It ends up including the filename, as you noted above. For my current purposes this is fine, but I thought I'd note that here just for completeness.


Weka dependency

dextor-core/libs contains
weka-1.0.jar
weka-wrapper-1.0.jar
This version does not match any weka version given on
http://mvnrepository.com/artifact/nz.ac.waikato.cms.weka/weka-stable
Which weka version is used by dexter?

Weka was added because the Wikiminer disambiguator needed that library, honestly I don't remember the reason of the version, it could be that I had to patch the library to read the model from the resources (http://stackoverflow.com/questions/19177882/load-a-file-in-resources-with-fileinputstream) , if you want to update to the latest version and submit a PR I'll be happy to accept.
Thanks

I have examined the weka.jar.
I have found a version.txt file in weka core. It says 3-5-7.
Same like here
https://svn.cms.waikato.ac.nz/svn/weka/tags/dev-3-5-7/weka/core/version.txt

@diegoceccarelli which size you have used to train the weka model?
I have now tested with weka 3.6.6 and 3.6.14.
3.6.14 has been published in april 2016.
http://mvnrepository.com/artifact/nz.ac.waikato.cms.weka/weka-stable
but results are a little bit different with the different weka versions.
still investigating.

500 articles maybe?

Weka version 3.6.9 is not compatibel with Weka versions < 3.6.9.
The model does not load with 3.6.9 if it is generated with Weka < 3.6.9.
Another problem appears with Weka versions >= 3.7.
Weka wrapper is broken because of api changes.
If I upgrade to 3.6.6, I dont have to change the model included with wikiminer.
If I upgrade to 3.6.14, the english model included in wikiminer has to be recreated.
@diegoceccarelli what do you think? how to continue with weka >= 3.7?

Fix the api changes? :) I'm currently porting tagme and wikiminer into the new version of dexter, I'll upgrade wikiminer to use the latest version of weka in this new version. Sorry about that

@diegoceccarelli this is good news for me. I have thought you would stop working on dexter because according to the home page http://hpc.isti.cnr.it/people/ your status has changed and you are working now for a company.
About wikiminer and tagme: why do you not publish these disambiguators on github?
About weka wrapper: do you plan to provide the source code with the fixed api changes, on github too?


Support op-erigon scripts and docker images

https://github.com/testinprod-io/op-erigon
Useful for running an archive nodes

In my recognition, op-geth store all state from the beginning.
So it's near to archive node. Right?

@HiroyukiNaito No, geth and op-geth is non-archive pruned node by default ( by recent 128 blocks ).
But seems like the docker configuration would run op-geth node in archive state which would be 10x heavier than the pruned nodes https://github.com/base-org/node/blob/main/geth-entrypoint#L65.
op-erigon is much lighter, more performant for archive node purposes.

@HiroyukiNaito No, geth and op-geth is non-archive pruned node by default ( by recent 128 blocks ).
But seems like the docker configuration would run op-geth node in archive state which would be 10x heavier than the pruned nodes https://github.com/base-org/node/blob/main/geth-entrypoint#L65.
op-erigon is much lighter, more performant for archive node purposes.

This is correct. Also note that op-reth is now an option as well, which is even more lightweight than op-erigon.

So, the current base node run with --gcmode=archive   and it stores all state from the beginning with current Docker setting.
Thus, the operational base node (op-geth) stores all state from the beginning.
Can --gcmode=full  reduce the disk space now, this operationa base op-geth?

@HiroyukiNaito I am running and could run op-geth nodes without --gcmode=archive flag. The flag is only useful if you need to access historical states that should be simulated with old blocks. ( For example looking up on a previously recorded contract data that has been overwritten ).

@kaliubuntu0206 Thanks! Does it sync quickly from the past 128 blocks? Honestly now it sync from 300,000 block from the latest snapshot.

@kaliubuntu0206 I removed the option but it is syncing from the very past block. So, I don't think it has any changes from the option --gcmode=archive.

@HiroyukiNaito The option doesn't change syncing speed but it will reduce your disk footprint

@kaliubuntu0206 Thanks, but my node hangs from the setting, so backed again to previous setting.

@HiroyukiNaito Changing pruning settings will require you to remove existing DB and resync

@kaliubuntu0206 So, it needs to download snapshot again. Oh, It's hell.

cc @roberto-bayardo I think providing snapshot for --gcmode=full --state.scheme=path would be also possible which would provide much lighter node

@kaliubuntu0206 I tried to --state.schme=path on my node, but it emits error which suggest don't support. How to enable --state.scheme=path?

@roberto-bayardo Which op-geth version are you using? For the latest version and the version tagged for base I think it is supported?

@kaliubuntu0206  I use the latest https://github.com/base-org/node/blob/main/Dockerfile#L22 .
However, it emits with error.

node-geth-1  | Fatal: Failed to register the Ethereum service: incompatible state scheme, stored: hash, provided: path
node-geth-1  | Fatal: Failed to register the Ethereum service: incompatible state scheme, stored: hash, provided: path

@roberto-bayardo Could you remove the init command?
https://github.com/base-org/node/blob/main/geth-entrypoint#L22
It is unnecessary since op-geth and op-node baked in base mainnet and testnets with my knowledge

@HiroyukiNaito It is due to the init command, you should also add --state.schme=path flag on to the init command but I guess base chains would work without the init command since they are already supported.

@kaliubuntu0206 Thanks! In the mean time, I try to --gcmode=full and --state.schem=path from the start without a snapshot .


Skip distribution if refund fails to send on channel closure

Description
closes: #1396
Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against correct branch (see CONTRIBUTING.md)
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[ ] Code follows the module structure standards.
[ ] Wrote unit and integration tests
[ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
[ ] Added relevant godoc comments.
[ ] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
[ ] Re-reviewed Files changed in the Github PR explorer
[ ] Review Codecov Report in the comment section below once CI passes

Codecov Report

Merging #1523 (7453287) into main (5e5e2cd) will increase coverage by 0.02%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main    #1523      +/-   ##
==========================================
+ Coverage   80.27%   80.29%   +0.02%
==========================================
  Files         166      166
  Lines       12252    12252
==========================================
+ Hits         9835     9838       +3
+ Misses       1954     1952       -2
+ Partials      463      462       -1

Impacted Files
Coverage Δ

modules/apps/29-fee/keeper/escrow.go
95.03% <100.00%> (+1.86%)
:arrow_up:


atmega 328 internal 8mhz has a bad entry

atmega328.menu.clock.internal8.bootloader.high_fuses=0xdb
should be
atmega328.menu.clock.internal8.bootloader.high_fuses=0xda
source:
https://docs.arduino.cc/built-in-examples/arduino-isp/ArduinoToBreadboard#minimal-circuit-eliminating-the-external-clock

The reason why the high fuse is set to 0xdb is to disable the boot reset vector (BOOTRST) setting. 0xda would be appropriate when using a bootloader (like on an Arduino), which is not the case here.
You can check this using the AVR Fuse Calculator: https://www.engbedded.com/fusecalc/
There's more information about BOOTRST here: https://www.martyncurrey.com/arduino-atmega-328p-fuse-settings/


[Core] Add support for loading weight that has already done TP sharding

This PR will be very useful, if we want to sync weights between different vLLM instances with tensor parallel enabled, so that we don't need to all-gather the parameters before-hand, but instead:

Collect the model weight from an available vllm.worker.worker.Worker, via iterating through self.model_runner.model.named_parameters().
Send the weight to the workers that are with the same tp rank as the source, then we can load the weight directly via
self.model_runner.model.load_weights().

Tested the PR with llama models with maximum tp size = 4.

Thank you for the PR

This PR will be very useful, if we want to sync weights between different vLLM instances with tensor parallel enabled,

Is this used in some post-training framework? or inference workload?

training TP size and inference TP size can (and usually are) different 🤔

Is this used in some post-training framework? or inference workload?

training TP size and inference TP size can (and usually are) different 🤔

It's for the inference and not related to any training weights. As suggested by the PR description, this PR enables the case that, the new vLLM instance model weights are loaded directly from each worker of an old (already-existing) vLLM instance (with tensor parallel enabled).


satisfies shouldn't complain about unknown properties

Suggestion

🔍 Search Terms

satisfies + (known properties, unknown properties, excess)
✅ Viability Checklist

My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

⭐ Suggestion

When using satisfies, the value should be allowed to have extra properties.
📃 Motivating Example

Satisfy is defined this way when I Google it:

meet the expectations, needs, or desires of (someone).

Right now, the satisfies operator does more than that. It's more like satisfies and goes no further than. Example:
interface User {
  name: string
}

const john = {
  name: 'John',
  email<EMAIL_ADDRESS>} satisfies User

In the above, the value of john clearly does satisfy the interface User, but the compiler complains:
Type '{ name: string; email: string; }' does not satisfy the expected type 'User'.
  Object literal may only specify known properties, and 'email' does not exist in type 'User'.

The first line of this is straight-up untrue! And it'd be really useful to be able to say "I have an object which I know is assignable to User, but it also has some specific extra stuff which I still care about.
💻 Use Cases

This first arose writing a very large, nested, complex config for a CMS. Right now it's a huge as const expression, which we have to carefully align with a type Config - but the type only defines some of the properties a config can have at compile time. The value is later passed to a function which expects a valid Config so we see invalid configuration errors in the wrong place. We have tried to use satisfies but hit the excess properties error for those properties not defined on the Config type. It's nested so we can't do satisfies Config & Record<string, unknown> except for top-level properties.

For me and probably many others its important that satisfies works as it does.
However have you tried the following? For your use-case I always check like this:
interface User {
  name: string
}

const john = {
  name: 'John',
  email<EMAIL_ADDRESS>}

// compile time check if john is assignable to User
;(x: typeof john): User  => x

// or in your case:
type Config = {
  key1: string
} // & { <A_COMPLEX_TYPE> }
const config = {
  key1: "config1",
  // keys with values of A_COMPLEX_TYPE
  keyNotInConfig: "foo"
}

// compile time check if config is assignable to Config
;(x: typeof config): Config  => x

Playground link
PS: If you want to check for equivalence  you can do this:
interface User {
  name: string
}

const john = {
  name: 'John',
  email<EMAIL_ADDRESS>}

// compile time check if john is equivalent to User
;(x: typeof john): User  => x
;(x: User): typeof john  => x

Playground link

This is intentional. See #47920.

@MartinJohns thank you, I missed that this was intentional behaviour first time I read that.
Re those workarounds:
satisfies T & Record<string, unknown>:
Does not work for nested types. The Config type I mentioned above looks something like:
interface Config {
  collections: Array<{name: string; folder: string; fields: Field[]}>
  backend: {repo: string; branch: string}
}

type Field = {name: string; translate?: boolean} & (
  | {widget: 'string'}
  | {widget: 'markdown'}
  | {widget: 'number'}
  | {widget: 'object'; fields: Field[]}
  | {widget: 'list'; field: Field}
  | {widget: 'list'; fields: Field[]}
  | {widget: 'select'; options: string[]}
  | {widget: 'code'}
  // | ...many more options
)

Where there are lots of complex field types in the Field union - and note that they can go arbitrarily nested via the object and list field types. So using & Record<string, unknown> isn't practical since most of those field types also allow excess properties.

;(x: typeof john): User  => x:
This works, in that it gives errors for invalidly-defined values, but the reason I made this issue is I want to be able to take advantage of satisfies - I want developers to get autocomplete when typing fields, etc. This workaround loses all of that and puts the error on a random, separate, deleteable-looking runtime function. I thought that kind of no-op identity function that is useful at compile time only was what satisfies was partly seeking to eliminate.

One workaround that really does work and doesn't have any noticeable downsides:
interface User {
  name: string
}

const john = {
  name: 'John',
  // @ts-expect-error
  email<EMAIL_ADDRESS>  birthDate: '2000-01-01',
} satisfies User

Since luckily, the compiler only looks for the first excess property. But it seems pretty strange that typescript would push users into doing something like this.

Having said that, I do understand that there was a reason to disallow excess properties by default as explained in #47920. I've retitled this issue to "Make satisfies configurable to allow excess properties" - maybe there could be some kind of syntax like satisfies extends User to allow for this use case? @RyanCavanaugh curious if there was any internal discussion of allowing excess properties via extra syntax? Or is there a better workaround than // @ts-expect-error?

ts-expect-error should always be your last resort; do literally anything else first.
If you're writing this construct exactly once (or some very small number of times) in your codebase, which it sounds like you are, I think it's just way better to write the slightly awkward variant:
const config = { /* huge thing */ } as const;
config satisfies Config;

You won't get error spans inside the object literal, but the error message will give you an unambiguous key path to the offending property if the literal is as const.

if there was any internal discussion of allowing excess properties via extra syntax

Of course, but generally we don't want to "spend" syntax unless it's absolutely critical to the language.

If you're writing this construct exactly once (or some very small number of times) in your codebase, which it sounds like you are, I think it's just way better to write the slightly awkward variant:

Yes there's only one config, but it's updated frequently. So it isn't just error spans, it's getting autocomplete on Field properties, etc. Developers have found the config hard to understand and I think intellisense would help a lot.

we don't want to "spend" syntax unless it's absolutely critical to the language

I don't know if I can make the case that it's absolutely critical to the language. But without a way to do this it does seem like perfectly-innocent users doing legitimate things are being forced to choose between bad DX and writing bad code like ts-expect-error.

I admit I'm a bit amused by this issue - it seems that the majority of people reporting issues with excess property checks think these checks are a core part of the type system and expect them to be much more comprehensive than they are (hence #12936), while you actually want a way to relax them. 😄

Yes. We are large, we contain multitudes.

@dkrieger consider if you wrote something like this
interface Dimensions {
  width: number;
  height?: number;
  depth?: number;
}

const p = { width: 20, detph: 20 } satisfies Dimensions;

The only thing saving you here is excess property checks (EPC). Not erroring on this line is indefensible IMO - if satisfies isn't providing this error, it's not doing its stated job.
There's a directionality problem here - if satisfies didn't do EPC, there'd be no way to get an error on this line, and the operator is useless toward that goal. But in a world where satisfies does EPC (this one), it's something you can opt out of with & Record<.... It's obviously better to design it in a way where both scenarios can be satisfied, so that's what we did.


Bevy v0.13

Now that generations start at 1, we will need to update entity serialization for bevy v0.13.
The new EntityMapper trait means we can deprecate MapNetworkEntities and Mapper.

Conditions should be regular systems if possible for consistency with Bevy.

I made a PR #198 to update to bevy 0.13.


feat: add PG OID support

Added support for PG OID type which is an int64 value with a PG_OID type annotation code.
TODO(tlhquynh): Fix error "ClientSideStatementsTest.testExecuteClientSideStatementsScript[dialect = GOOGLE_STANDARD_SQL] » Spanner UNKNOWN: com.google.cloud.spanner.Value$AbstractValue; local class incompatible: stream classdesc serialVersionUID = -3172976482472570184, local class serialVersionUID = -548927415729174063"
TODO(tlhquynh): Rebase once https://github.com/googleapis/java-spanner/pull/2703 is merged before merging.

Both aforementioned TODOs regarding class incompatible due to mismatched serialVersionUID and rebasing after #2703 is merged are done.


Add version number to README or something

Just so I know when I need to update, if any changes are made

Mostly I mean within the actual .ZIP installation, so there's something in my install directory telling me. I couldn't find anything at the moment.

I have added the version number to the zip name and in the How To Install.txt in the newest releases.


Youtube URI not working with iris and mopidy

I copy the URI from the example and add it to play. Nothing appens.
with the command
sudo systemctl status mopidy
I see:
lug 05 12:45:41 raspberrypi mopidy[363]:     _compat.reraise(*self._data['exc_info'])
lug 05 12:45:41 raspberrypi mopidy[363]:   File "/usr/lib/python3/dist-packages/pykka/_compat/init.py", line 29, in reraise
lug 05 12:45:41 raspberrypi mopidy[363]:     raise value
lug 05 12:45:41 raspberrypi mopidy[363]:   File "/usr/lib/python3/dist-packages/pykka/_actor.py", line 193, in _actor_loop
lug 05 12:45:41 raspberrypi mopidy[363]:     response = self._handle_receive(envelope.message)
lug 05 12:45:41 raspberrypi mopidy[363]:   File "/usr/lib/python3/dist-packages/pykka/_actor.py", line 299, in _handle_receive
lug 05 12:45:41 raspberrypi mopidy[363]:     return callee(*message.args, **message.kwargs)
lug 05 12:45:41 raspberrypi mopidy[363]:   File "/usr/local/lib/python3.7/dist-packages/mopidy_youtube/backend.py", line 194, in loo
lug 05 12:45:41 raspberrypi mopidy[363]:     name=video.title.get().replace(";", ""),
lug 05 12:45:41 raspberrypi mopidy[363]: AttributeError: 'NoneType' object has no attribute 'replace'

Sorry to hear it is not working for you. What is the uri are trying?

The one of the example:
yt:http://www.youtube.com/watch?v=Njpw2PVb1c0
Il Dom 5 Lug 2020, 13:08 natumbri<EMAIL_ADDRESS>ha scritto:

Sorry to hear it is not working for you. What is the uri are trying?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/natumbri/mopidy-youtube/issues/150#issuecomment-653874610,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA7ODRO4P3HBB4UEI4PSE5LR2BNKJANCNFSM4OQ2EVTA
.

Thanks for confirming @eziosoma.  I've now tested Njpw2PVb1c0 at my end, and it works fine for me.

Are all videos failing, or just particular ones?
Which version of mopidy-youtube are you using?  The released version on pypi is starting to get a bit old, and I haven't managed to update it yet.  You might consider trying the current version in the develop branch here on github, if you're not already using that - it is more likely to work.

Did you upgrade from mopidy 2 to mopidy 3?  That has introduced gremlins for some people.

Hey 👋
I am facing the same issue.
For me, every video and/or searching by title fails without an error in the logs.
The version I am using it the latest one in pypi, since I am using a docker container that pulls the addons.
All python modules should be up-to-date as I just recreated the container.

Hello,
actually everything fails in the youtube plugin, both the search (no
result) and the Add to play of a URI.
I have updated the entire system (raspberry Pi zero) with the system
command sudo apt-get upgrade, so may be that mopidy is at the last version
available. I have tried also the youtube plugin from github, but without
success.
I have also updated the python modules (especially youtube-dl).
Is there any log file that I can provide to you for the debugging?
May thanks and regards.
Ezio Somà
On Mon, Jul 6, 2020 at 1:39 AM natumbri<EMAIL_ADDRESS>wrote:

Thanks for confirming @eziosoma https://github.com/eziosoma. I've now
tested Njpw2PVb1c0 at my end, and it works fine for me.

Are all videos failing, or just particular ones?
Which version of mopidy-youtube are you using? The released version
on pypi is starting to get a bit old, and I haven't managed to update it
yet. You might consider trying the current version in the develop
branch here on github, if you're not already using that - it is more likely
to work.

Did you upgrade from mopidy 2 to mopidy 3? That has introduced
gremlins for some people.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/natumbri/mopidy-youtube/issues/150#issuecomment-653953838,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA7ODRKLDJ62HOB73CYAT2LR2EFJXANCNFSM4OQ2EVTA
.

Hi @eziosoma and @Cludch
Thanks for your further reports.  I've pushed some small changes to the develop branch here on github.  Do either of you have any capacity to give the new version a try?  If someone can confirm that it helps, I'll try to push it out to pypi as a new version 3.1.
Thanks again for raising this - hopefully we can get it fixed!
Cheers,
Nik

Hi,
I had a test by installing mopidy-youtube extension from github by running:
python3 -m pip install https://github.com/natumbri/mopidy-youtube/archive/develop.zip
but nothing changed.
The first time I added the URI i got from the command
sudo systemctl status mopidy
this result:
lug 10 18:24:23 raspberrypi mopidy[1943]:     raise value lug 10 18:24:23 raspberrypi mopidy[1943]:   File "/usr/lib/python3/dist-packages/pykka/_actor.py", lin lug 10 18:24:23 raspberrypi mopidy[1943]:     response = self._handle_receive(envelope.message) lug 10 18:24:23 raspberrypi mopidy[1943]:   File "/usr/lib/python3/dist-packages/pykka/_actor.py", lin lug 10 18:24:23 raspberrypi mopidy[1943]:     return callee(*message.args, **message.kwargs) lug 10 18:24:23 raspberrypi mopidy[1943]:   File "/usr/local/lib/python3.7/dist-packages/mopidy_youtub lug 10 18:24:23 raspberrypi mopidy[1943]:     name=video.title.get().replace(";", ""), lug 10 18:24:23 raspberrypi mopidy[1943]: AttributeError: 'NoneType' object has no attribute 'replace' lug 10 18:24:23 raspberrypi mopidy[1943]: [youtube] Njpw2PVb1c0: Downloading js player 3662280c lug 10 18:24:26 raspberrypi mopidy[1943]: [youtube] Njpw2PVb1c0: Downloading js player 3662280c
That seems better than previous messages, but no success in reproducing the video track.
I have not enabled th yt API, I hope that this is not important.

@eziosoma I'm sorry to hear it is still not working for you. You shouldn't need to use the yt API. (If you have an API key, you could try it, but that's not the cause of this bug.)
I'll keep thinking about what it could be...

Let me know if there is some log file or debug message that i can collect for you to better understand where the problem is.

Hi,
I got the same error.
But journalctl -xe is printing some more details about this error:
Jul 14 10:07:26 raspberrypi mopidy[2878]: INFO     [YouTubeBackend-3] mopidy_youtube youtube LibraryProvider.lookup "yt: https://www.youtube.com/watch?v=xkAQ6bhpwYw"
Jul 14 10:07:32 raspberrypi mopidy[2878]: ERROR    [Thread-11] mopidy_youtube list_videos error "list index out of range"
Jul 14 10:07:32 raspberrypi mopidy[2878]: ERROR    [Core-7] mopidy.core.library YouTubeBackend backend caused an exception.
Jul 14 10:07:32 raspberrypi mopidy[2878]: Traceback (most recent call last):
Jul 14 10:07:32 raspberrypi mopidy[2878]:   File "/usr/lib/python3/dist-packages/mopidy/core/library.py", line 17, in _backend_error_handling
Jul 14 10:07:32 raspberrypi mopidy[2878]:     yield
Jul 14 10:07:32 raspberrypi mopidy[2878]:   File "/usr/lib/python3/dist-packages/mopidy/core/library.py", line 217, in lookup
Jul 14 10:07:32 raspberrypi mopidy[2878]:     result = future.get()
Jul 14 10:07:32 raspberrypi mopidy[2878]:   File "/usr/lib/python3/dist-packages/pykka/_threading.py", line 45, in get
Jul 14 10:07:32 raspberrypi mopidy[2878]:     _compat.reraise(*self._data['exc_info'])
Jul 14 10:07:32 raspberrypi mopidy[2878]:   File "/usr/lib/python3/dist-packages/pykka/_compat/__init__.py", line 29, in reraise
Jul 14 10:07:32 raspberrypi mopidy[2878]:     raise value
Jul 14 10:07:32 raspberrypi mopidy[2878]:   File "/usr/lib/python3/dist-packages/pykka/_actor.py", line 193, in _actor_loop
Jul 14 10:07:32 raspberrypi mopidy[2878]:     response = self._handle_receive(envelope.message)
Jul 14 10:07:32 raspberrypi mopidy[2878]:   File "/usr/lib/python3/dist-packages/pykka/_actor.py", line 299, in _handle_receive
Jul 14 10:07:32 raspberrypi mopidy[2878]:     return callee(*message.args, **message.kwargs)
Jul 14 10:07:32 raspberrypi mopidy[2878]:   File "/usr/local/lib/python3.7/dist-packages/mopidy_youtube/backend.py", line 194, in lookup
Jul 14 10:07:32 raspberrypi mopidy[2878]:     name=video.title.get().replace(";", ""),
Jul 14 10:07:32 raspberrypi mopidy[2878]: AttributeError: 'NoneType' object has no attribute 'replace'
Jul 14 10:07:39 raspberrypi sudo[3163]:       pi : TTY=pts/0 ; PWD=/home/pi ; USER=root ; COMMAND=/bin/systemctl status mopidy

For me it seems like the error handling is thowing an error...as the "list index out of range" error is occuring before the main error.
Hope this somehow helps.

Ok, thanks everybody - this must be quite frustrating for you all!
I'm not too sure what is going on, so...

I've created a new branch specifically for diagnosing, fixing and testing this issue
the new branch is fix/issue-150
the new branch is based on develop with one addition ...
... the new branch saves a file to /tmp each time a search is run; the file contains the search results

It would be useful if people could

install that branch
run a search for dylan
upload the file that is generated (/tmp/dylan.mopidy_youtube.search) to the internet somewhere (dropbox, google drive, etc), and send me a link

I'll look at those files, and then at least I'll know if you are getting similar results back from youtube to what I am getting. And, I can feed those results into my system here to see if I can duplicate the error (and fix it).  If you're getting wildly different results to what I'd expect ... well, there might need to be some more fundamental changes.
I had a couple of goes here and couldn't find any private information in the search results.  Feel free to have a look and, if you find private information feel free to

tell everyone what it is, and that it is included in the search results (so we all know)
replace it with an x for each character, so secret would become xxxxxx
As I said, I don't think there is anything like that in there, but I certainly wouldn't discourage anyone who wants to double check from doing so.

Ok, please, generate some dylan searches and send me links to the files!
Thanks for your help,
Nik

Hi,
it was a mistake from my side. I didn't check the update output properly.
To override the newest version I had to add the --upgrade flag.
python3 -m pip install --upgrade https://github.com/natumbri/mopidy-youtube/archive/fix/issue-150.zip

Now everything is working 👍
Nevertheless, I created the output file for the search:
https://gist.github.com/LucK1Y/0f9bb2c396cd5cbb07cf8a970cc18fbb#file-dylan-mopidy_youtube-search

Hello,
I have executed the same command of LucK1Y without success. The file is not generated and no result in the search.
My environment is a Raspberry PI zero.
Any suggestion or test to do?

@LucK1Y glad to hear it is working for you, and thanks for uploading the file. I'll have a look at it, to make sure it is as expected, but it sounds like you are good to go. Don't forget to switch back to the develop branch, to avoid generating a new file every time you run a search.
@eziosoma I'm sorry to hear it is still not working for you. I will try to think of some new things to test, to see if we can get it working!

Hi,
For me it was same as in @eziosomas case. Mopidy-youtube stopped working several weeks ago with same errors in log. I installed  issue-150 version as @LucK1Y mentioned, Still mopidy-youtube didnt play anything and no log was created. Then I tried to run   sudo python3 -m pip install --upgrade https://github.com/natumbri/mopidy-youtube/archive/fix/issue-150.zip`
and everything started working. Finally a switched to the develop version and everything is running smoothly. The key was in installing with sudo. I'm a beginner in this so I don't know why but it could help you too.

Many thanks @tschenek, installing with sudo and restarting mopidy solved also my problem.

Hello natumbri,
can you explain what each configuration options do?
threads_max = 16
search_results = 15
playlist_max_videos = 20
If you want mopidy-youtube to autoplay related videos, set autoplay_enabled = true:

[youtube]
autoplay_enabled = true

If autoplay is enabled, other options are:

strict_autoplay = [true/false]
max_autoplay_length = [maximum length of track in seconds or None]
max_degrees_of_separation = [defaults to 3]

I had the same issue, 3.0 did not work. The provided fix seemed to have worked! Please release it as an update on pypi!

@vdmkenny thanks for trying. I've pushed it out to pypi as v3.1.  I haven't really tested it much, so fingers crossed.

This bug affected me as well, and I can confirm that 3.1 fixes it, thanks!

I can confirm as well that I can search find and play videos, since the update. Which is everything I wanted.
What still does not work for me though is playing a specific video or playlist by URL.
Specifically searching for:
yt:http://www.youtube.com/playlist?list=PLeCg_YDclAETQHa8VyFUHKC_Ly0HUWUnq
or
yt:http://www.youtube.com/watch?v=Njpw2PVb1c0
in filename does not give me any results.


(CL) feat: Wire Twap to Concentrated Liquidity

What is the purpose of the change
Wires Twap to Concentrated Liquidity.
This PR also includes the process of wiring pool manager to the twap module, while previously the gamm keeper was directly wired to the twap keeper.
Brief Changelog

Wire Twap to Concentrated Liquidity Pools

Testing and Verifying

This PR adds tests to new features

Documentation and Release Note

Does this pull request introduce a new feature or user-facing behavior changes? (yes / no)
Is a relevant changelog entry added to the Unreleased section in CHANGELOG.md? (yes / no)
How is the feature or change documented? (not applicable   /   specification (x/<module>/spec/)  /  Osmosis docs repo   /   not documented)

Closing this PR as this was replaced with PRs that were separated out


Investigate partially failing Netlify deploy

https://github.com/bycza-zagroda/track-expenses-app-frontend/pull/144
Deploy is partially failing but works in the end. Investigate why this is happening now.

@Iwona007 @mirekgab Please check that issue

The problem was solved by change in netlify configuration.


How do you deserialize the objects?

Is there any helper method to deserialize the models?  For example, Layout is an interface but to successfully use deserializer like jackson's Object Mapper you need to either add annotation to the object or create custom deserializer to account for the type defined in the class.  The latter requires work on the consumer of the SDK if they want to utilize the types like ChatPostMessageResponse vs defining their own types.
Thanks,
Derek

@darewreck54 We use GSON for serializing / deserializing JSON data. For some types, we have type adapters like these: https://github.com/slackapi/java-slack-sdk/blob/v1.12.1/slack-api-client/src/main/java/com/slack/api/util/json/GsonFactory.java#L43-L65
If you would like to use Jackson for your type binding, you can do the same in your own code. We are not planning to add Jackson support on this SDK side.
Let me know if you have anything further to ask/discuss here.

@darewreck54 Let us know if you need more help here 👋 If we don't hear back, we'll close this issue in a few days.


Code vs paper

Hi all,
Im working on a JAX implementation of a hippo-gated-rnn; I wasnt quite sure how to interpret the diagram in the paper linked below; but indeed I cannot quite mesh it with the torch implementation linked below as well. The code seems more sensible to me than the paper; that is it makes sense to me to have the ssm see the raw data unfiltered; placing the nonlinear gated action in front seems like it might jeopardize the unobstructed flow of gradients along the sequence.
The version from the diagram in the paper works quite alright though, in my use case.  Though the torch version seems to converge more quickly. Just curious if im misreading something here, or what your latest thinking on these matters is.
EDIT: I had very good experience with the paper version in terms of avoiding exploding gradients; while the code version seems to converge faster and smoother initially, I do observe the gated unit to be able to explode on longer trajectories. Lots of things to explore here I suppose; deep/stacked ssms with pointwise nonlinearities have not worked for me so far.
class GatedHippo(nn.Module):
	"""
	linear state-space-model coupled with a gated-nonlinear module
	"""
	ssm: nn.Module
	rnn: nn.Module = MGUCell()

	@nn.compact
	def __call__(self, carry, inputs):
		"""How I read the diagram in the paper
	        https://arxiv.org/pdf/2008.07669.pdf
                """
		rnn_carry, rnn_output = self.rnn(carry['rnn'], jnp.concatenate([carry['ssm'], inputs]))
		ssm_carry, ssm_output = self.ssm(carry['ssm'], rnn_output)
		carry = {'rnn': rnn_carry, 'ssm': ssm_carry}
		return carry, rnn_output  # should we use ssm output here, lest it goes unused?

	@nn.compact
	def __call__(self, carry, inputs):
		"""How I read the torch code
		https://github.com/HazyResearch/hippo-code/blob/201148256bd2b71cb07668dc00075420cfd4c567/model/model.py#L79
		"""
		ssm_carry, ssm_output = self.ssm(carry['ssm'], inputs)
		rnn_carry, rnn_output = self.rnn(carry['rnn'], jnp.concatenate([ssm_output, inputs]))
		carry = {'rnn': rnn_carry, 'ssm': ssm_carry}
		return carry, rnn_output

The version in the torch code is the one used in all experiments in the original paper. Any differences from the paper figure is probably due to a different interpretation. To be honest, the RNN cell was somewhat arbitrary so there are a lot of reasonable alternatives. The original HiPPO-RNN cell has long been abandoned in favor of the S4 approach.


Feathers + Angular 2

Hi!
I'm trying to get up and running with the Feathers. I'm therefore trying out the Feathers + Angular 2 guide from the http://docs.feathersjs.com/guides/angular2.html. I have completed the Angular2 walkthrough, and I have gone through all the Feathers steps. But when I'm trying run it with npm start, I get the following error:
services/feathers.service.ts(1,18): error TS2304: Cannot find name 'require'.

The line it is referring to is this:
const feathers = require('feathers/client');

Under the Typescript section, from the guide, it states, You'll also need a module loader, a commonly used one is Webpack. If you've gone through the Angular 2 quickstart you should be good to go.
The Angular 2 quickstart used SystemJS, I have tried to figure out how to configure it to make it work, but with no luck.
Sorry for not figuring this out, but I coming from C# background, and I'm struggling a bit with all the different syntax variations of ES5 vs ES6 vs Typescript and transpiling...
Thanks in advance!

Maybe @harangue can weigh in here. He wrote the guide for us and unfortunately, I don't know much about typescript or Angular2 so I'm not going to be much help here.

Hey @yberstad! Sorry for the delayed response. If you look at this SO issue I think you'll find the solution to your problem.

@yberstad let us know if that doesn't work and we can reopen. I'm going to close this.

@harangue Thank you so much for you help, it works now! :)


Improve error handling to report the actual error in case of an error in the custom service

Trying to start my service in a docker container I got this error:
[ERROR 2018-05-11 03:19:46,356 PID:463 /usr/local/lib/python2.7/dist-packages/mms/mxnet_model_server.py:_arg_process:177] Failed to process arguments: Incorrect or missing service file: /mxnet_model_server/visualsearch/service.py

The actual error after debugging was an import error in my service file:
No module named wget

Ideally that should be bubbled up rather than just saying it is incorrect

Great call, and this is not a feature request, it is a plain old bug :)
@vrakesh can we get this in to v0.4 release please?

will look into this, and get it fixed for 0.4

@vrakesh thanks!


Fixed inverted com range check

Got error message when placing building near command center, rather than too far from it.

Whoops. Good find!


fix ope_encoder_destroy() crash

In what situation can this crash occur?

OggOpusEnc created with ope_encoder_create_pull() , ope_encoder_get_page() just returned 1 then I call ope_encoder_destroy() . But if I call ope_encoder_drain() before ope_encoder_destroy(), it does not happen . no callbacks.

Does that patch work instead:
https://jmvalin.ca/misc_stuff/fix_pull_api_close.patch

yes, it does!

Fixed in master. Thanks for reporting this.


Links on blog articles in search go to /

If you search for a blog article and click, it routes to the homepage. Please update these links direct to the article, thank you!

@chloespilotro


Add basic support for struct DSTs

Adds support for the following:
#[spirv(compute(threads(32)))]
pub fn shader(
    #[spirv(descriptor_set = 0, binding = 0)] slice: Uniform<Slice<f32>>,
)

pub struct Slice {
    rta: [T],
}

               OpEntryPoint GLCompute %1 "main_cs" %2
               OpExecutionMode %1 LocalSize 32 1 1
               OpMemberDecorate %_struct_3 0 Offset 0
               OpDecorate %2 DescriptorSet 0
               OpDecorate %2 Binding 0
       %void = OpTypeVoid
      %float = OpTypeFloat 32
%_runtimearr_float = OpTypeRuntimeArray %float
  %_struct_3 = OpTypeStruct %_runtimearr_float
%_ptr_Uniform__struct_3 = OpTypePointer Uniform %_struct_3
       %uint = OpTypeInt 32 0
          %9 = OpTypeFunction %void
          %2 = OpVariable %_ptr_Uniform__struct_3 Uniform
          %1 = OpFunction %void None %9
         %10 = OpLabel
         %11 = OpArrayLength %uint %2 0
               OpReturn
               OpFunctionEnd

However, asm doesn't seem to allow &Slice or &[T], and storage class inference has some issues when trying to use asm to implement indexing into the array:
impl<T: Copy> Slice<T> {
    unsafe fn index(&self, idx: usize) -> f32 {
        let mut res = 0.0;

        asm! {
            "%uint = OpTypeInt 32 0",
            "%uint_0 = OpConstant %uint 0",
            "%rta = OpLoad _ {0}",
            "%element = OpAccessChain typeof{2} %rta %uint_0 {1}",
            "OpStore {2} %element",
            in(reg) &self,
            in(reg) idx,
            in(reg) &mut res,
        };
        res
    }
}

produces:
inference conflict: Instance(Instance { generic_id: 4, generic_args: InferVar(7)..InferVar(8) }) vs Var(InferVar(8))
    in %64 = OpAccessChain 58 63 16 35

Trying to do &self.rta or using self with no reference produces:
error: cannot use value of type `*const Slice<T>` for inline assembly
// ...
note: only integers, floats, SIMD vectors, pointers and function pointers can be used as arguments for inline assembly

Wait, we shouldn't need to use asm! to support indexing, this compiles fine with this PR:
// Simple single entrypoint function test.
// build-pass

use spirv_std::storage_class::{Output, Uniform};

#[spirv(fragment)]
pub fn shader(
    #[spirv(descriptor_set = 0, binding = 0)] slice: Uniform<Slice<f32>>,
    mut out: Output<f32>,
) {
    let x = slice.data[5];
    *out = x;
}

pub struct Slice<T> {
    blah: f32,
    data: [T],
}

However, there's issues with the pointercast->GEP conversion code (recover_access_chain_from_offset) that need to be fixed, this surprisingly doesn't work:
// Simple single entrypoint function test.
// build-pass

use spirv_std::storage_class::{Output, Uniform};

#[spirv(fragment)]
pub fn shader(
    #[spirv(descriptor_set = 0, binding = 0)] slice: Uniform<Slice<f32>>,
    mut out: Output<f32>,
) {
    let x = slice.data[5];
    *out = x;
}

pub struct Slice<T> {
    data: [T],
}

which fails with
error: Cannot cast between pointer types
  --> $DIR/hello_world_2.rs:11:13
   |
11 |     let x = slice.data[5];
   |             ^^^^^^^^^^^^^
   |
   = note: from: *struct Slice<f32> { data: [f32] }
   = note: to: *[f32]

so that needs to be fixed

Fixed the issue in PR 510 ^

Sweet! Thanks 😄 I'll add a couple tests to this.

#443 will simplify this, so I'll wait on that.

Changed to a much cleaner implementation now that #443 has landed, which addresses both review points.
This only adds support for DSTs that are structs whose last field is a slice.
pub struct MySlice<T>([T]);
pub struct TrailingSlice<T> {
    fields: u32,
    last_field: [T],
}
pub struct NestedSlice<T>(MySlice<T>);

pub fn my_shader(
    // supported
    my_slice: MySlice<f32>,
    trailing_slice: TrailingSlice<f32>,

    // error!
    slice: &[f32],
    nested_slice: &NestedSlice<f32>,
) {/* .. */}

Adding support for nested slices is a lil tricky. OpArrayLength doesn't take a chain of indices so you need to dig into the Adt's fields until you find the one whose last field is TyKind::Slice, collecting the field indices as you go.  Then, loop over the field indices excluding the final one and generate OpConstants, pass the constants into OpAccessChain, and pass the result from that into the OpArrayLength with the index of the last field.  I can do that in a follow up, but I wanted to keep this simpler.

@khyperia I addressed your review. Let me know if there's anything else 🙂

Added ArrayStride decoration to OpTypeRuntimeArray.  I am getting a spurious test fail on my machine from a double define of panic_impl and eh_personality due to glam, however that isn't related to any changes I have made.

Thank you for your PR!


When downloading a URL resource, ensure we read everything.

@llllllllll any comments on this one?  This is blocking us, so timely feedback is appreciated, thanks!

looking now

Thanks @llllllllll for the feedback.


Double ESC to exit on Firefox

I was just trying out the demo page: opening the slide show the focus lies on the previous-button element, or the close-button in the single image example.
Hitting ESC key just removes the focus from the element and you need an extra ESC to actually exit the slide.
Firefox version 50

What OS do you use? Are there any errors in the console? Could you try it with all addons disabled (Safe Mode)?
It works fine for me on Firefox v.50, Windows 10 machine.

I'm on Linux but yeah, it's VimFX that's intercepting the ESC hit.
Sorry for the noise and thanks for your time.

No problem! I'm glad we've figured it out.


Complete merge_queue_entry and repository_ruleset events

The initial scaffolding for merge_queue_entry and repository_ruleset was completed in #329. However, the complete definitions still need to be completed.

Yeah, absolutely!

Is merge_queue_entry still supported? I cannot find it in github documentation https://docs.github.com/en/webhooks/webhook-events-and-payloads#merge_queue_entry

Yes? I'll follow-up on that. Thanks for the work on repository_ruleset!


ARROW-9844: [CI] Add Go build job on s390x

As suggested by @kou in https://github.com/apache/arrow/pull/8011, this will add a Travis CI job for Go on s390x.

@kou Sorry I'm not familiar with the process, will this PR be merged?

This PR has been merged into master: https://github.com/apache/arrow/commit/92e01cc5ebe912f0ad1377eae765aa36478db52f
We use our merge tool https://github.com/apache/arrow/blob/master/dev/merge_arrow_pr.py instead of using GitHub's merge UI to update corresponding JIRA issue too. We close PR but the change is merged.
Now, you can use the CI job in https://github.com/apache/arrow/pull/8011 by rebasing on master.

We should probably hold off  merging more PRs for big endian architectures until we come to consensus on this on the ML about support in general

OK.
The ML thread: https://lists.apache.org/thread.html/r3d4ab3ccc8db7a7a68baa727bf9b6911930b61609c0faaed14e2b773%40<dev.arrow.apache.org>

Right I understand.  Thanks @emkornfield and @kou.


allow index into ForeignKey

Codecov Report

Merging #989 (7ecf927) into master (7c18fa5) will not change coverage.
The diff coverage is 100.00%.

Additional details and impacted files

@@            Coverage Diff            @@
##            master      #989   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files          200       200
  Lines        16532     16533    +1
=========================================
+ Hits         16532     16533    +1

Impacted Files
Coverage Δ

ormar/fields/foreign_key.py
100.00% <100.00%> (ø)

Thanks, seems right to include it! :)
Can you please add test (check underlying sqlalchemy table structure if it has the index set / not set based on this setting - you can check Model.Meta.table for columns settings and table indexes) and docs for it (in fk section)

@collerek I looked through the docs and wasn't sure exactly where/what we should add this for argument. The foreign key section does not actually document any of the kwargs that are curried from ormars fk to sqlalchemys fks. I suppose we could start there? happy to do that, or if you have a more specific suggestion of where this documentation should go I'm happy to add it.

That would be awesome!
Yep the fk section looks like a good candidate for this.

Merged in https://github.com/collerek/ormar/pull/1276 as I don't have perms on your fork, thanks!


Add CPP version guard to eve

Added to eve/module/core.hpp instead of eve/eve.hpp because not everyone use the later as the main eve header.

Think it is worth a shot. @DenisYaroshevskiy your opinion ?


Allow for longer custom_support_url and description

Allow for longer custom_support_url and description

@dclarizio @h-kataria @martinpovolny Please review