[WIP] General handling of ownership

This PR generalizes OperatorHandle to a template Handle for arbitrary types. OperatorHandle is then consistently derived from Handle<Operator>. The codebase of OperatorHandle has been cleaned, so there is no direct access to the underlying structures, which enables possible future extension of the implementation.

Thanks for putting this together @najlkin. I imagine that coming to a consensus about the right design for this might take some further discussions.
I have a couple opinions on what I would like to see in a design:

I don't think we should base the design on OperatorHandle

Based on many past interactions with MFEM users and developers, the semantics of OperatorHandle are consistently brought up as a point of confusion; I don't think this class is well-liked.
OperatorHandle mixes a couple of concepts: it is both a partially managed ("half-smart") pointer, and performs a kind of "type erasure" to provide a more generic interface
For a resource ownership class like Handle<T>, the type erasure is irrelevant. The As and Is interfaces don't serve a useful purpose there. (I see you removed pSet in 1f06947, which is a step in the right direction).

I don't think the concept of a "shallow copy" is a good one. This means, for example, that you can't return an owning handle by value. It also means that assignment can have different semantics depending on whether the copy constructor is invoked or elided (RVO), which is dangerous.
I would personally argue for "smarter" ownership semantics (e.g. something like shared_ptr). This would help make a lot of the manual ownership juggling more automatic.

Of course, reference counting involves some overhead, so it should be opt-in, and used only in non-performance-critical parts of the code.
The main thing that the OperatorHandle interface can't express cleanly is transferring or sharing ownership. Because of the "shallow copy" semantics, passing an OperatorHandle is always a "borrow". Sharing ownership is impossible, and transferring ownership requires manually setting ownership flags.

In my opinion, we should aim for a design that will allow users to use it correctly without specifically providing ownership flags.

Those are some of the considerations that went into the design that I proposed here: https://godbolt.org/z/oP8szM741

@pazner , thanks for writing this down. First of all, let me clarify that this is not supposed to be the ultimate solution. It can be evolved to that if you want to take over this PR or there can be a follow up. Currently, this is an intermediate step to unblock #4557 , for example. The logic is following, OperatorHandle will have to be implemented to keep compatibility, so will be Handle, which makes that actually easier and is in a way future compatible.
About the points:

Not my choice,  OperatorHandle exists already and will have to be supported.

I do not know how liked  OperatorHandle is or not, but Handle does not provide much more than the basic interface for a pointer wrapper. There are a few extra things, which I do not like particularly (like As() or Is()), but does not make much sense to not generalize them and some folks like to do dangerous stuff (which reminds me of #4136 🙄 ).
There are no types in Handle and so no erasure.
As() or Is() are just shorthands for doing the static and dynamic cast as before...

Both, OperatorHandle and Handle have the default move constructor, so you can return them by value. It makes some sense for a kind of unique pointers. It is a risk, but again, it is in OperatorHandle, so there is not much choice. For the future, shared pointers and reference incrementing by copy constructor might be a better option potentially, but that needs more discussion.
For now, Handle offers something like unique_ptr, which is in line with the implementation of OperatorHandle. Feel free to make it smarter in the future 😉 . I am looking forward to it 👍

So for now, I would either merge this to #4557 and you may continue in this PR, or merge this PR to master and you may make a follow up. If you are concerned about API, we may put Handle to an internal namespace for now 🤔 .

Thanks @najlkin. I understand that you are introducing this as a "stop-gap" solution for PR #4557. My thoughts are that we should make a such an interface decision carefully and after consensus has been reached on the team, otherwise we can end up in a position where we support a suboptimal interface indefinitely. I don't know the details of #4557, but I very strongly suspect that a version of that PR could go through very easily without introducing more sweeping changes (For example, why can't NURBSMeshRules simply have internal IntegrationRule member data, a reference to which is returned by NURBSMeshRules::GetElementRule, obviating the need for any deleteRule logic? — I will comment on that PR to move the relevant discussion there).
To respond to your points,

OperatorHandle exists, and is not going anywhere, but if we introduce a smart pointer type, we don't need to be constrained by the design decisions of OperatorHandle — they can be separate. (This is also why we need to carefully design interfaces, so we're not locked into decisions that we may want to change later).

As, Is, and Get are all present in OperatorHandle because the wrapped pointer is always an abstract class. For a more general smart pointer type that would not be the case, and there is no real reason to provide these (users can always perform the casts themselves). unique_ptr and shared_ptr don't provide these.

Handle does not have a defaulted move constructor, instead the copy constructor will be called (a technicality, maybe). The problem is that the copy constructor does not transfer ownership, but returning by value with RVO will transfer ownership, which is not consistent. Returning an owning Handle by value will result in a dangling pointer.
A "smarter" version (e.g. based on shared_ptr) will necessitate a different interface. For example, SetOwner(false) will not be possible in that case. Considerations like this are why I think we should settle on a design first, and then move forward with a PR.

@pazner , to the points:

I wanted from the beginning to defer the design choices for later and to implement only the existing design, which has to be supported. For that reason, I moved Handle to internal namespace to not be used by users (even when the chances are low).

I am no fan of As(), Is() or Get() and you are right they make even less sense for Handle, so I moved them back to not foster that design. But just saying that people like to do dirty stuff and might ask for that like they did for BlockOperator 😁

I just tested that move constructor and returning by value works like a charm 🪄 🙂 , but you are right it should not have technically the implicitly-defined one 🤔 . It is just copy elision and RVO probably. So I added the default one explicitly to make it consistent 😉 .
Sure, changes might be needed later, but that will require some discussion and some labor if it will be a breaking change for OperatorHandle. That is exactly what I am trying to avoid now and defer for later.

Thanks @najlkin. I think a technical meeting with others on the team will be most productive to advance this discussion. I'd be happy to schedule something if you're interested.

Regarding OperatorHandle, my position is that we should design an interface for Handle (or whatever we decide to call it) independently of OperatorHandle. I don't think we should be constrained by the design decisions of OperatorHandle, and if that means that OperatorHandle cannot be expressed as Handle<Operator>, then so be it. To give a specific example, shared pointers cannot generally release ownership the way that unique pointers can. OperatorHandle has a mechanism to release ownership. It will be difficult (though perhaps not impossible) to resolve this.
Yes, it worked because of RVO, but it would not work with the previous implementation without RVO. See here for an example of this failing with the flag -fno-elide-constructors. Having the copied-into and moved-into objects in different states is not desirable.
One option is to keep OperatorHandle as it is without making breaking changes. The new interface can be distinct.


Remove RefreshCachedVacancyStatistics job

This job and its Rake task are no longer needed as of #2725.

Review app deployed to https://teaching-vacancies-review-pr-2769.london.cloudapps.digital


Character Token and Character Portrait shown above name

Is there more to this issue that failed to submit? I'm not sure if what you're saying here is a suggestion, bug, or what. The Character Token and Portrait are definitely not supposed to be shown above the name. If they are, I could use details about what setup you have.
If you're suggesting that they be displayed above the name, that's a different matter entirely.

Going to close this as I suspect it is better encapsulated by #18


(WIP) Night-mode no js

(WIP)

Can someone this card to in progress?

You have to ask @yiiTT

We already have a user-level template changer, but thank you!


Create Business Configuration for Factory Calendar

Tutorials: https://developers.sap.com/tutorials/abap-environment-service-binding.html
Under step 2.8 the right-click has to be performed with "Dictionary" instead Right-click on Data Elements...

Hi @klickerlebnis ,
thank you for your feedback. You are able to create a new data element by right-clicking the dictinary and then selecting data element. Or you can directly right-click the data elements folder to create a new data element. You have both options.
Best regards,
Merve


Losing timestamp type values from additionalData in android

with android, any value of timestamp form additionalData when I receive a push notif on android.
any idea why?
I am using rn0.40 xcode8.2.1 and latest version

Hi @jsappme,
Not sure that I completely understood your question?

Ok let me explain better. I have a notification coming to my android phone with the following additional data:
{"clientId":"h6HY9dI7FmOp2GkLQIZe38DJ04g1","clientName":"Vincent ","createdAt":1484400225607,"image":"https://firebasestorage.googleapis.com/v0/b/fishii-36223.appspot.com/o/posts%2F-KaS8RE_RiOKu1Hoh1eS.jpg?alt=media&token=27e0a7c1-f274-4bdb-83b3-6dcc19d19ce9","imageHeight":600,"imageWidth":450,"new_messages":0,"price":"$25","puid":"-KaS8RE_RiOKu1Hoh1eS","status":"sold","text":"Kayak caught with hook and line","title":"Queen Sea Bass","uid":"92uIqfkAzwXcYlBduSNnLYRSUia2","updatedAt":1484411789854,"username":"aspomartin"}
But when I display this additional data from the app, it gives me:
{ username: 'aspomartin',
imageWidth: 450,
uid: '92uIqfkAzwXcYlBduSNnLYRSUia2',
image: 'https://firebasestorage.googleapis.com/v0/b/fishii-36223.appspot.com/o/posts%2F-Kao4YbH4mgM8x6snzQm.jpg?alt=media&token=7ce4138f-fa8e-4026-be88-d66fdb148d5a',
text: 'Kayak caught. Hook and line',
clientId: '',
clientName: '',
new_messages: 0,
price: '$8.00',
title: 'Snook',
imageHeight: 600,
status: 'sold',
puid: '-Kao4YbH4mgM8x6snzQm' }
as you can see, I lost the createdAt and updatedAt values.
This happens with android only, everything works ok with ios.
I hope you understand better my issue.

@jsappme Understood. I'll try to take a look on this next week.
Thanks for reporting!

Cool thanks

Any update on this please? I'm experiencing the same issue

@jsappme This doesn't appear to be an issue with the react-native-onesignal sdk but it is possibly an API issue.
I would suggest trying different key values for createdAt and updatedAt. Perhaps you can try renaming them to timeCreated or something like that.
Closing this issue due to inactivity, please feel to reopen the issue if you are still dealing with it and I'd be happy to reopen and investigate.

I face the same issue today, there is two timestamp value in my additionalData but it is lost when handle onOpened:
In Dashboard I saw: {"type":"check_in_emergency_contact","checkInId":"HpywIfGQMfDLoknnpqSY","time":1582790820000,"timezone":"Asia/Ho_Chi_Minh","userId":"zTlZMLbnWacYHZIbHoZ0GI2pwdJ3","latitude":21.0097041,"longitude":105.7938943,"lastUpdateLocation":1582790828438,"mode":"CHECK_IN","address":"CT3, Toà Nhà VIMECO, Phường Trung Hoà, Quận Cầu Giấy, Trung Hoà, Cầu Giấy, Hà Nội, Vietnam"}
onOpened I got:
{"type":"check_in_emergency_contact","checkInId":"HpywIfGQMfDLoknnpqSY","timezone":"Asia/Ho_Chi_Minh","userId":"zTlZMLbnWacYHZIbHoZ0GI2pwdJ3","latitude":21.0097041,"longitude":105.7938943,"mode":"CHECK_IN","address":"CT3, Toà Nhà VIMECO, Phường Trung Hoà, Quận Cầu Giấy, Trung Hoà, Cầu Giấy, Hà Nội, Vietnam"}


AtomicStr is unsound, causes use-after-free

Minimal example:
use std::thread::spawn;

use rust_i18n::{t, set_locale};

rust_i18n::i18n!("locales", fallback = "en");

fn main() {
    set_locale("fr");
    spawn(|| {
        let mut i = 0u32;
        loop {
            i = i.wrapping_add(1);
            if i % 2 == 0 {
                set_locale(&format!("en-{i}"));
            } else {
                set_locale(&format!("fr-{i}"));
            }
        }
    });
    spawn(|| {
        loop {
            t!("hello");
        }
    });
}

cargo r -r
malloc(): unaligned fastbin chunk detected
Aborted

cargo +nightly miri r
error: Undefined Behavior: not granting access to tag <108954> because that would remove [Unique for <111597>] which is strongly protected because it is an argument of call 53836
   --> /home/kijewski/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/non_null.rs:399:18
    |
399 |         unsafe { &*self.as_ptr().cast_const() }
    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not granting access to tag <108954> because that would remove [Unique for <111597>] which is strongly protected because it is an argument of call 53836
    |
    = help: this indicates a potential bug in the program: it performed an invalid operation, but the Stacked Borrows rules it violated are still experimental
    = help: see https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md for further information

I reported the bug to https://github.com/rustsec/advisory-db/pull/1855 because your otherwise great crate is widely used.


Progressive Enhancement + HTML Partials

I read the whole documentation and also your YT video, specially the part that you talk about partials. I'm building a datagrid component in Go+Templ which has a pagination nav. I follow your advice to make my website work without any JS, like an MPA and started to sprinkle some JS. I first feature I wanted was to be able to click on any page link of the pagination nav and make an ajax request to the server so it can load only an html fragment corresponding to the datagrid component. The problem I'm facing is that that my original URL is something like /orders?page=1&pageSize=10. Now if I implement x-target of AlpineAjax on the pagination links it will make a request to that URL, which is not a partial, it returns the full content of the page. Then if I change the anchors URL to point to the fragment endpoint like /orders/fragment?page=2&pageSize=20 then I'm throwing away the progressive enhancement approach, because if JS is disable, the users will then be accessing to the fragment page. I was expecting to have something else besides the href of the anchor so the x-target can use to point the the fragment endpoint, but didn't find anything in the docs. Is there a way I can achive this using AlpineAjax?

Hey, thanks for reaching out. In this case you would want to rely on an http header. Using a header you can keep the page URL the same  but change what your server returns in the response. By default Alpine AJAX includes two headers with every request: X-Alpine-Request: true and X-Alpine-Target: [space separated ids]. So, the simplest approach would be to check for the presence of X-Alpine-Request in your backend code and, if it exists, serve a fragment, otherwise you can serve the whole page. X-Alpine-Target could be used in more complex scenarios where one endpoint could respond with one or more fragments; you could parse the header and get details on exactly which page fragments are needing updates, and then only serve those fragments.

Thank you so much for your fast and on-point response. Now I understand more of the fundamentals behind AlpineAjax and I must admit... I'm trying to control my hype because, you know, I don't like that from the Vercel fanboys.
Regarding your last sentence, yes, I think people like me would appreaciate a lot if that in the docs.
Anyways leave my star to this project and I'll keep my journey on implementing AlpineAjax over on of my systems. Again, thank you so much for this library!


Data returned from wallet websocket was not json

serviceworker.js is not needed here.
and why is it payment .dict() or ._asdict() that weird.


chore: add chain OORT Mainnet

Add new chain

Template to provide information about the new chain. Only add extra information in the bottom section. Ensure that the contracts are deployed on the chain, if not deploy with safe-contracts. Only one chain ID, one Safe version and one deployment type per PR. This entire paragraph should be deleted.

Please fill the following form:
Provide the Chain ID (Only 1 chain id per PR).

Chain_ID: 970

Provide RPC URL for the chain (should be able to query atleast 10 requests per minute for automatic PR check).

RPC_URL: https://mainnet-rpc.oortech.com

Relevant information:
Add any other relevant information like blockexplorer, any annotation...
https://mainnet-scan.oortech.com

It looks like some contracts were not deployed, please check the Review check to see the same. Also, could you deploy the Migration contracts as well?

It looks like some contracts were not deployed, please check the Review check to see the same. Also, could you deploy the Migration contracts as well?

Thanks @remedcu for being aware of the PR according to the the "review" on the CI it seems its trying to look contracts at

but you can see here at the ABI file

the contract was deployed to another address, should i re-deploy ALL the contracts?

It looks like some contracts were not deployed, please check the Review check to see the same. Also, could you deploy the Migration contracts as well?

Thanks @remedcu for being aware of the PR according to the the "review" on the CI it seems its trying to look contracts at

but you can see here at the ABI file

the contract was deployed to another address, should i re-deploy ALL the contracts?

this contracts are deployed deterministically, and the deployment should result in the addresses from the deployment file. If it was deployed to a different address, then something was wrong during the deployment (wrong tag used, there was a code change, etc)

i re-ran the script with the latest package:

which includes OORT Mainnet
some contracts are getting reuse as you can see

looks like it re-deploy, the contract has not getting change and obviously it using the default compiler etc provided by the repo, nothing is changed

Hey team this is fixed! i've added the new address, now the deployments are in the correct address as the scripts runs with no further issues
CompatiblityHandler: https://mainnet-scan.oortech.com/address/0xfd0732Dc9E303f09fCEf3a7388Ad10A83459Ec99

Screencast from 09-10-24 18:44:16.webm

Hey team any chance that we look into merge this other PR? thanks https://github.com/safe-global/safe-eth-py/issues/1379#issuecomment-2411952202

Hey team somehow im keep getting this issue trying to set up the safe-web
No Safe deployment found: https://github.com/safe-global/safe-wallet-web/issues/4415#issuecomment-2439741980
why is this? other chains work on the local instance (dockerized) safe-transaction service


Refactor Route: create a route containing multiple orders

Changes made:

From /route create a/ADDRESS to /route create o/ORDER_ID o/ORDER_ID
The corresponding Route model, commands, parsers, storage and their tests

Pull Request Test Coverage Report for Build 113

59 of 63 (93.65%)  changed or added relevant lines in 8 files are covered.
2 unchanged lines in 2 files lost coverage.
Overall coverage increased (+0.8%) to 82.29%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/main/java/seedu/address/storage/route/XmlAdaptedRoute.java
15
16
93.75%

src/main/java/seedu/address/model/route/Route.java
10
13
76.92%

Files with Coverage Reduction
New Missed Lines
%

src/main/java/seedu/address/logic/parser/route/CreateRouteCommandParser.java
1
88.89%

src/main/java/seedu/address/model/route/Route.java
1
75.76%

Totals

Change from base Build 111:
0.8%

Covered Lines:
2300

Relevant Lines:
2795

💛  - Coveralls


Misformed URL 404

When creating a task with a bad URL ( POST http://funnel.my.host//v1/tasks ) I get back a list of tasks rather than a 404.

I can also reproduce this with funnel run -S http://localhost:8000// --sh "echo hello"

I can't reproduce this, I think it was fixed in #292


Update manifests/t/Tencent/QQ/<IP_ADDRESS>141/Tencent.QQ.locale.en-US.yaml

Fixes an issue where this package has multiple different monikers
Microsoft Reviewers: Open in CodeFlow

Needs Attention

@wingetbot run

[Policy] reset feedback

[Policy] Needs-Attention

@wingetbot run

@wingetbot run


ModelViewer: fix Engine ownership ambiguity.

ModelViewer was destroying the Filament engine in its detach handler,
but a custom engine may have been passed into the constructor, in which
case it was surprising that ModelViewer took ownership over the engine's
lifetime.
This change makes it so that the engine is always owned by the caller,
and it is the caller's responsibility to destroy the engine.
Tested using orientation changes, with and without the custom
configChanges property in the manifest.
Discussed in #4724

Can you also update the release notes? This is a pretty important API change.

Yes,  I feel lukewarm about this though, do you think it's a good change?  For example, note that the Engine is now "reused" and never destroyed, which works but feels a little asymmetrical.

Can you also update the release notes? This is a pretty important API change.

Yes, I feel lukewarm about this though, do you think it's a good change? For example, note that the Engine is now "reused" and never destroyed, which works but feels a little asymmetrical.

Yeah, see my comments.
I think the change is good but I wonder if we shouldn't keep the case of ModelViewer creating and owning the engine. This would require proper documentation at the class level to explain when you'd want to pass your own Engine. At this with your PR this is very explicit.


Hero section in homepage is not responsive

Thank you for taking the time to file a Bug report.
Describe the bug
If you visit the homepage and then inspect it then on a screen less than 1200px width the Read and Sign the manifesto button is not made responsive as its margin-left is given 60em.
To Reproduce
To give the margin-left property a responsive value which should be applicable for all screen sizes.

Go to 'https://journal-policy-tracker.netlify.app/'
Right-click the mouse button and then click on  'inspect '
Keep the dimension responsive and make the screen size less than 1200 px.
See an error.

Expected behavior
The button should always lie in between the image space for the entire screen width
Screenshots

Desktop (please complete the following information):

OS: [Windows]
Browser [Brave]
Version [e.g. 22]

Thansk for spotting this @ORKO06 !

I would like to work on this and fix it.

thanks!


Connected component childrens not re-rendering

So I've started using this library recently and I'm facing an issue. I have a component that is a Layout: It just contains markup and renders it's children inside:
const Layout = ({ children }) => {
  return (

      {/* Some fancy HTML layout */ }

{children}

  );
}

Now I want to connect my Layout component to the store, so I can get the current logged-in user stored there:
connect(({ user }) => ({ user }))(Layout);

As soon as I connect it, the application stops behaving the way you would expect it. Components inside the layout stop re-rendering when their state/props changes.
Issue reproduced here: Clicking on the button updates the internal state of the Counter component but the DOM is never updated.
I guess this happens because the state of the store is not changing and the Provider HOC is returning false from its shouldComponentUpdate.
Is this behaviour intended? How can I avoid it?

I noticed that in the example if you move the Layout component outside of the Counter component, it works as expected:
const App = () => (
  <Provider>
    <Layout>
      <Counter />
    </Layout>
  </Provider>
);

https://codesandbox.io/s/r7mnloxmvp
🤔

I think it has something to do with an issue I found and fixed #42 (you can maybe make the change locally to see if it solves your issue)

Since that is already merged I upgraded to 3.0.7 but now I see a weirder issue: Children components won't render at all on a connected component.

Since <Consumer> takes children as a function (our API, not React's), the children prop is taken.
We should change the Consumer component API to allow children to be used as well, or at least supply an alternative (when using connect).
I'm trying to come up with a solution. (great example btw)


fix(copy-button): invalid icon foreground color in dark mode

Before

After

@shadcn noticed this too... a low-hanging-fruit-fix on some of the most used buttons in the app

@vedantnn71 I just merged https://github.com/shadcn/ui/pull/239 with a fix (adding the currentColor is preferred). Thanks for the PR though. Appreciate it!

@shadcn awesome shad, no problem!


DO NOT MERGE: Set EXTRA_INDEX_URL

Closing this one, as discussed on Discord, the plan is to remove the need for these completely.
../Frenck


Incremental Playback Control

PR Fixes:
Created a small feature like youtube player "using number button user can increment or decrement to seek video
like if User press 1 video will seek to 10 % similarly for 0 to 9 "
Checklist before requesting a review

[x] I have performed a self-review of my code
[x] I assure there is no similar/duplicate pull request regarding same issue

This is already done

Ok sir


developer mode is manadatory for this test

Without enabling developer mode, the temporary token cannot be
generated.  This is the only test that fails without developer
mode enabled globally.

Codecov Report

Merging #792 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #792   +/-   ##
=======================================
  Coverage   72.66%   72.66%
=======================================
  Files          83       83
  Lines        5016     5016
=======================================
  Hits         3645     3645
  Misses       1025     1025
  Partials      346      346

Continue to review full report at Codecov.

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

@baijum
would this help?
https://github.com/almighty/almighty-core/commit/3734f26e568b78b560dd0a997b00f32c72a84e87

I am closing thir PR based on the comment from @kwk


Tried installing this library but it refused with the error AssertionError: No exception message supplied

I would very much need this issue addressed by any of you that has succeeded with the installation.
What do i do now?

Try to check the example: https://github.com/morlandi/django-ajax-datatable/tree/master/example
https://github.com/morlandi/django-ajax-datatable/tree/master/example_minimal
Although, I am having problems with the date range. It always result in no data in tables.

Also see: https://github.com/morlandi/django-ajax-datatable/issues/1

thats the very one thats not working.
its the one generating that error

The problem with the date range  has been clarified with @r1bnc in #18

thats the very one thats not working.
its the one generating that error

for me the whole thing from the point of installation does not work

i only tried out the system via theonline demo

Try to make a test program to make this program work.


[Enhancement] Minimize button on home page help pop-up needs better placement

Summary
Minimize button needs an even padding across (at the bottom) to be more uniform.

@hiteshjoshi @areyabhishek can we get a better design for this popup for the appsmith design system project?


Implement: sessions init

Add a "sessions init" command to tapis-cli

Replaced by tapis auth init


Made endpoints in links deterministic

Closes #221
Summary
Makes it so that the order of endpoints in a Link is deterministic. Uses LinkID in order to determine order of endpoints. LinkID also updated to have endpoints be ordered in the interfaces attribute.
Local Tests
Ran tox and all existing tests are passing.
End-to-End Tests
Have not yet run e2e tests with this change yet.

@Ktmi, nicely done, looks great to me.
Can you update the changelog? Also, can you run e2e tests with this change (I don't expect surprises there, but it's good to explore that dynamic LLDP created links are all set)?

Can confirm that lldp creates the appropriate links. However, I found that several e2e tests assume the previous endpoint ordering behavior. Here's the log from running the tests: https://gist.github.com/Ktmi/aaa0512a89fa5176422dd07e4e3d196a

Looking a bit deeper at the failing tests, it seems that mef_eline checks that a series of links in the backup path also form a continuous series of switches.
____ TestE2EMefEline.test_005_on_primary_path_fail_should_migrate_to_backup ____

self = <tests.test_e2e_11_mef_eline.TestE2EMefEline object at 0x7fd917a3ff10>

    def test_005_on_primary_path_fail_should_migrate_to_backup(self):

        # TODO Check for false positives between uni_a switch 1 and uni_z switch 3 instead of switch 2
        """ When the primary_path is down and backup_path exists and is UP
            the circuit will change from primary_path to backup_path. """
        payload = {
            "name": "my evc1",
            "enabled": True,
            "uni_a": {
                "interface_id": "00:00:00:00:00:00:00:01:1",
                "tag": {
                    "tag_type": 1,
                    "value": 101
                }
            },
            "uni_z": {
                "interface_id": "00:00:00:00:00:00:00:02:1",
                "tag": {
                    "tag_type": 1,
                    "value": 101
                }
            },
            "primary_path": [
                {"endpoint_a": {"id": "00:00:00:00:00:00:00:01:3"},
                 "endpoint_b": {"id": "00:00:00:00:00:00:00:02:3"}}
            ],
            "backup_path": [
                {"endpoint_a": {"id": "00:00:00:00:00:00:00:01:4"},
                 "endpoint_b": {"id": "00:00:00:00:00:00:00:04:4"}},
                {"endpoint_a": {"id": "00:00:00:00:00:00:00:04:3"},
                 "endpoint_b": {"id": "00:00:00:00:00:00:00:03:4"}},
                {"endpoint_a": {"id": "00:00:00:00:00:00:00:03:1"},
                 "endpoint_b": {"id": "00:00:00:00:00:00:00:02:4"}}
            ]
        }

        api_url = KYTOS_API + '/mef_eline/v2/evc/'
        response = requests.post(api_url, data=json.dumps(payload), headers={'Content-type': 'application/json'})
>       assert response.status_code == 201, response.text
E       AssertionError: {"code":400,"description":"backup_path is not valid: Interface('s3-eth4', 4, Switch('00:00:00:00:00:00:00:03')) switch is different from previous.","name":"Bad Request"}
E
E       assert 400 == 201
E        +  where 400 = <Response [400]>.status_code

tests/test_e2e_11_mef_eline.py:84: AssertionError

I was thinking, maybe I could modify mef_eline to not care about the order of endpoints, but the problem is that there is implied directionality, that I think may potentially matter in the case of looping back to the same switch. @viniarck What do you think?

I was thinking, maybe I could modify mef_eline to not care about the order of endpoints, but the problem is that there is implied directionality, that I think may potentially matter in the case of looping back to the same switch. @viniarck What do you think?

@Ktmi, I was looking into mef_eline code. Since Path inherents from a list the directionality is based on this ordered sequence, so this loop example shouldn't be an issue in terms of validation or detecting it. I think if you were to adapt the is_valid method to avoid assuming that endpoint_a would always be the an interface of the next switch that should work with the current changes I suppose.
Since in some cases prior to this change, a Link's endpoint wasn't deterministic, this problem that you mentioned already existed in certain circumstances, since whoever is consuming the api would need to know upfront which endpoint_a a Link ended up being constructed with and having to send the expected request payload.
One additional implication to consider is: do we want to accept either primary_path and secondary_path list payload with endpoint_a and endpoint_b keys ordered or in any order? I think we could and should without too much extra work or complexity, since ultimately, the deterministic Link will be built and serialized and stored in the DB as well. The only potential surprise would in the output of the serialized circuits that the order of endpoint_a or endpoint_b might not be the same as the user specified, which is OK, as long as we also document in the changelog explaining this.
cc'ing also @italovalcy and @ajoaoff to since they originally were involved in this part validating mef_eline static paths if they want to contribute to the discussion.

Reviving this PR, I adjusted mef_eline to these changes PR #399 and small changes to e2e tests were needed too PR #244

@Alopalao thanks for helping out with this, I ended up hitting a new corner case though with mef_eline that I described on https://github.com/kytos-ng/mef_eline/pull/339#discussion_r1237289869

Ran modified e2e tests and with latest changes
Ran 'hello' command on MongoDB successfully. It's ready!
+ python3 -m pytest tests/test_e2e_14_mef_eline.py tests/test_e2e_10_mef_eline.py tests/test_e2e_11_mef_eline.py tests/test_e2e_12_mef_eline.py tests/test_e2e_13_mef_eline.py tests/test_e2e_15_mef_eline.py --reruns 2 -r fEr
============================= test session starts ==============================
platform linux -- Python 3.9.2, pytest-7.2.0, pluggy-1.0.0
rootdir: /tests
plugins: timeout-2.1.0, rerunfailures-10.2, anyio-3.6.2
collected 101 items

tests/test_e2e_14_mef_eline.py x                                         [  0%]
tests/test_e2e_10_mef_eline.py ..........ss.....x.....x................  [ 40%]
tests/test_e2e_11_mef_eline.py ......                                    [ 46%]
tests/test_e2e_12_mef_eline.py .....Xx.                                  [ 54%]
tests/test_e2e_13_mef_eline.py .....xs.s......xs.s.XXxX.xxxx..X......... [ 95%]
...                                                                      [ 98%]
tests/test_e2e_15_mef_eline.py ..                                        [100%]

Updated changelog

Let's ship it.


Set up renovate-bot to manage dependencies

Renovate is commonly used in Google Cloud repositories, let's add it here to get nice PRs with dependency changes.
This may require some access token wrangling.

Fixed by #417 #438


TypeError in ProductController / ProductCombinationFinder

Description
I see this popping up in the error logging of my application:
Uncaught PHP Exception TypeError: "Argument 3 passed to
Shopware\Storefront\Page\Product\Configurator\ProductCombinationFinder::find()
 must be of the type array, null given, called in
/data/web/releases/20210127.0806/vendor/shopware/storefront/Controller/ProductController.php
 on line 105

Possible Solution
The corresponding code that triggers this is:
$newOptions = json_decode($request->query->get('options'), true);
A json_decode of NULL outputs NULL which causes this TypeError to occur. Best would be to update this to:
$newOptions = json_decode($request->query->get('options', []), true);
Additional context
Shopware <IP_ADDRESS>

hey @pottink
thanks for bringing this up 👍 sounds like a good first issue for a PR 🙂 maybe you, or someone else would like to contribute 💪

I don't know how this gets triggered exactly but I assume by search robots. Pops up frequently.


PLC MOS API access problem

Hi,
We got the token but unable to access the PLC-MOS-API-Example.ipynb script. It throws JSONDecodeError: Expecting value: line 1 column 1 (char 0) when running last line script resp.json() in the example. Please help
With regards,
Nitesh

Hi,
the token was not active yet. It is now active. Please be aware that the API is, unfortunately, currently somewhat slow. We're working on getting the onnx model released for PLCMOS so you could run it yourself, but this may still take a bit.
Best,
Lorenz

Hi, Is there any certificate (.pem) file as we still getting same error when processing on our cloud platform ?


Release v0.1.11

Added Sphinx documentation (#184, #191, #183, #193).
Integrated with ReadTheDocs service (#188, #189, #190).
Create a deepcopy of config in api client (#172).
Fix client/secret auth (#186).
Increase DBFS copy buffer size (#185).
Move classes to other repository (#192).
Relax requests version upper bound to <3 (#138).

Codecov Report
Patch coverage: 100.00% and no project coverage change.

Comparison is base (9cb4703) 53.41% compared to head (f03e52a) 53.41%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #194   +/-   ##
=======================================
  Coverage   53.41%   53.41%
=======================================
  Files          29       29
  Lines       18314    18314
=======================================
  Hits         9783     9783
  Misses       8531     8531

Impacted Files
Coverage Δ

databricks/sdk/version.py
100.00% <100.00%> (ø)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Fluid player controls don't autohide

In pc the fluid player controls dont autohide when the mouse in in frame. This is especially annoying on mobile fullscreen when they cover 1/5th of the screen. Is there any way to fix this?

Hi @StupidBacon, thank you for bringing this to our attention. We are now reviewing this behavior on different browsers & devices and will hope to have improvements for this in one of our future releases.

oh ok. Thank you. BTW I tested in chrome. On PC and android. both the control bar doesnt hide.

@StupidBacon controls hiding issue is now sorted and available in Fluid Player version v1.2.0

Same issue mouse cursor does not disappear and controls do not hide.

@EQuick78 can you provide me with a link to a test page I can see this happen?


Enhancement 🧑💻: Adding any sample image for the projects that dont have any image

WebMasterLog Repository
:red_circle: Adding sample image  :
:red_circle: Changes : I want to add any other common image for those projects who don't have any image .
Screenshots 📷

:white_check_mark: To be Mentioned while taking the issue :

Full name : Ayushmaan Agarwal
GitHub Profile Link :  https://github.com/Ayushmaanagarwal1211
What is your participant role? GSSOC

Happy Contributing 🚀
All the best. Enjoy your open source journey ahead. 😎

@Ayushmaanagarwal1211 Assigned to you and join the discord server.


Create production release

Details
Creates a Github Release to trigger a production deploy. The release body just has the list of PRs which it includes for now. This code should make it pretty easy to add more changelog notes and/or other files or artifacts with the release.
Fixed Issues
Fixes https://github.com/Expensify/Expensify/issues/155221
Tests
Still haven't tested action-gh-release in Public-Test-Repo.
To live-test this PR:

Merge this PR
Close a StagingDeployCash, and assuming https://github.com/Expensify/Expensify.cash/pull/1858 is working as expected, then the production job of the deploy workflow should be triggered.
It should then create a Github Release matching the tag from the StagingDeployCash that was closed.
That should trigger all the platform-specific deploy workflows (although the actual production deploy may be skipped for the time being, until we flip the switch).

finishReleaseCycle: https://github.com/Expensify/Expensify.cash/actions/runs/666269006
prod PR: https://github.com/Expensify/Expensify.cash/pull/1889
prod automerge: https://github.com/Expensify/Expensify.cash/actions/runs/666269990
create release: https://github.com/Expensify/Expensify.cash/actions/runs/666271840 ❌

Retesting after merging https://github.com/Expensify/Expensify.cash/pull/1894 ...

finishReleaseCycle: https://github.com/Expensify/Expensify.cash/actions/runs/666300457
prod PR: https://github.com/Expensify/Expensify.cash/pull/1897
prod automerge: https://github.com/Expensify/Expensify.cash/actions/runs/666301879
deploy production: https://github.com/Expensify/Expensify.cash/actions/runs/666303694 ❌

Failed at a later step this time!

Retesting after merging https://github.com/Expensify/Expensify.cash/pull/1901 ...

finishReleaseCycle: https://github.com/Expensify/Expensify.cash/actions/runs/666330964
prod PR: https://github.com/Expensify/Expensify.cash/pull/1904
prod automerge: https://github.com/Expensify/Expensify.cash/actions/runs/666332059
deploy production: https://github.com/Expensify/Expensify.cash/actions/runs/666333977 ❌

Failed at a later step this time! Getting closer... We'll pick this back up tomorrow.

I think the last error we saw last night was caused because there were no existing releases. We could add code to handle that edge case, but instead I think we can just create a release using the UI.

Retesting after manually creating a couple releases:

finishReleaseCycle: https://github.com/Expensify/Expensify.cash/actions/runs/668688064
prod PR: https://github.com/Expensify/Expensify.cash/pull/1917
prod automerge: https://github.com/Expensify/Expensify.cash/actions/runs/668689468
deploy production: https://github.com/Expensify/Expensify.cash/actions/runs/668692438 ❌

Failed at a later step again!

That doesn't match the docs!

😠 ... probably has to do with the commit hash we're pointing at

Yeah, we're pointing at b7e450d, and:

I'm just going to point at the latest commit

Retesting after merging https://github.com/Expensify/Expensify.cash/pull/1921 ...

finishReleaseCycle: https://github.com/Expensify/Expensify.cash/actions/runs/668819608
prod PR: https://github.com/Expensify/Expensify.cash/pull/1924
deploy production: https://github.com/Expensify/Expensify.cash/actions/runs/668823331
Release created: https://github.com/Expensify/Expensify.cash/releases/tag/1.0.2-92

🎉 IT WORKED 🎉


docs(repo): added names from git log into contributor file.

@TonyLo1 this is just a dump from git log. If you have their latest email address or proper names or anyone I left out it is still worth fixing/addressing this file. Also someone still needs to add the names to the Pom as well. So the ticket wont be closed and you should keep the ticket on your list.
I only added this commit because I didnt like it with just my name in it so I wanted to add at least SOMETHING.


Initial proposal for a CRD that reasons over repos

I was confused by that reasons over repos ... I thought that the CRD provides some kind of reasoning capability for apps, etc, i.e. knows and/or can deduce dependencies and the like ...
Reading the description more closely this seems to propose a CRD/resource/controller which provides an abstract interface to the applications managed by carrier, providing access for uploading/querying sources, querying and manipulating state.
Behind that abstract interface we can then implement as we like, i.e for example use gitea as the storage engine.
Or something else, more lightweight.
Further unclear, who is the user in ... allows the user to define ... ?
I.e. what role are we looking at here ?

carrier dev ?
carrier operator ?
app dev ?
app deployer ? (app operator, maybe a subset of carrier operators)

I was confused by that reasons over repos ... I thought that the CRD provides some kind of reasoning capability for apps, etc, i.e. knows and/or can deduce dependencies and the like ...
Reading the description more closely this seems to propose a CRD/resource/controller which provides an abstract interface to the applications managed by carrier, providing access for uploading/querying sources, querying and manipulating state.
Behind that abstract interface we can then implement as we like, i.e for example use gitea as the storage engine.
Or something else, more lightweight.
Further unclear, who is the user in ... allows the user to define ... ?
I.e. what role are we looking at here ?

carrier dev ?
carrier operator ?
app dev ?
app deployer ? (app operator, maybe a subset of carrier operators)

This is not part of any immediate goals. I'm closing this and we can revisit it when the time comes.


Meta-issue re: being dependent on external services (+ Metaphysics promise rejection)

cc @craigspaeth @joeyAghion @alloy
Curious to your thoughts on this issue, and sorry for being long-winded!
Something that has come up several times, is how resilient Force (or specific pages) can/should be to external systems being down or out of sync. This usually manifests in server-side requests to Gravity/Metaphysics/Positron, or client-side ones, generally returning non-successful error codes and/or having promises rejected.
Client-side issues will naturally have a 'graceful' degradation when encountered, since large chunks of the page will most likely be rendered and functional anyway.
However...server-side issues are handled much less gracefully. Basically, any error in a server-side request will lead to a total 500/404 and not very nice stack/error trace, etc.
We do reject any Metaphysics promises where any field had any issue resolving (https://github.com/artsy/force/blob/e3ff78ab2464ae7c83e537af15512810ab6b0c51/lib/metaphysics.coffee#L31-L34).
This could lead to one of these external systems having an issue, and an entire page failing to load. In fact we've seen that several times (+ frequently on staging).
So I'm wondering what your thoughts are on this issue. In some cases (like Gravity or Metaphysics being down), it most likely makes sense to have an error and not show anything. But, it does seem less than ideal to not load an artist or artwork page because Galaxy is down.
I'm thinking maybe we can decorate certain fields/nodes in Metaphysics (those that rely on external services) with a flag indicating their 'optional-ness', and not reject the promise if any of those fields error. Then, we'd need to make any templates/calling code in Force, resilient to those fields being null (which is probably safe most of the time anyway, since they frequently can be null for valid reasons, not just having errored).

Correct me if I’m wrong, but doesn’t MP still send the response, albeit incomplete, and is it not just Force that is deciding to throw a 404 on any error? Because it seems to me that MP is behaving correct and Force should simply handle those fields that failed being null (which is what I assume would be the case), instead of rejecting all of the data. In addition those fields should not be marked as GraphQLNonNull in MP’s schema.

Yes precisely, MP sends the response (with nulls for error'ed fields, and a descriptive errors array), but Force simply rejects any promise from Metaphysics that has anything returned in errors: handled here.
So are you proposing to simply remove that reject if errors block in Force? I'd support that 👍

Yep, that’s what I’m proposing. I’m sure it was added for good reason, though, so you should do a bit of spelunking to find that reason and see if we can limit the way in which we decided to reject any response with errors.

Catching up to this late. I think the only reason we decided to reject the promise if anything was present in errors is something like "if the presence of an error doesn't reject the promise, then what would?". But I agree, in practice it has been more of a nuisance than an aid. This recent PR / Issue is a good example: https://github.com/artsy/force/pull/796 .
Moving towards not rejecting errors seems to make sense, it will just move the responsibility to individual requests to handle the errors, should they occur.

I’ve renamed this ticket to clarify what I understand to be the only work item. Please rephrase if need be.

I'm definitely down to do this.
It might be tough to see what templates/code in Force are resilient to being null (but some obvious places to check might be Galaxy returned data, on the artist page and CV).
Maybe we just remove that rejection clause, do a manual check of the Galaxy-related code and templates, and then deploy. We can then be on the lookout for any error reports.
If we want to be even 'safer', maybe we can remove the rejection clause, but replace it with a direct NewRelic ping to log errors so we can periodically review them.

Maybe we just remove that rejection clause, do a manual check of the Galaxy-related code and templates, and then deploy. We can then be on the lookout for any error reports.

👍

If we want to be even 'safer', maybe we can remove the rejection clause, but replace it with a direct NewRelic ping to log errors so we can periodically review them.

I was under the impression that @broskoski recently added client-side error reporting, so either make sure that these errors would show up there or, if I misremembered, indeed push the error to NewRelic.

Interesting, yea I think I'll just directly ping the NewRelic API, since some of the important ones we definitely would want to track are server-side.

Ah good point 👍


docs(http-trigger.md): link rendering fixes and minor updates

Fixes issue where some links weren't clickable (perhaps because there was a trailing . or :?)  Please advise if there is a preferred approach to having them render correctly.
Add'l minor fixes/updates

Before:

After:

Content must go through a pre-merge checklist.
Pre-Merge Content Checklist
This documentation has been checked to ensure that:

[ ] The title, template, and date` are all set
[ ] Does this PR have a new menu item (anywhere in templates/*.hbs files) that points to a document .md that is set to publish in the future? If so please only publish the .md and .hbs changes in real-time (otherwise there will be a menu item pointing to a .md file that does not exist)
[x] File does not use CRLF, but uses plain LF (hint: use cat -ve <filename> | grep '^M' | wc -l and expect 0 as a result)
[x] Has passed bart check
[x] Has run npm run build-index
[x] Has been manually tested by running in Spin/Bartholomew (hint: use PREVIEW_MODE=1 and run npm run styles to update styling)
[ ] Headings are using Title Case
[ ] Code blocks have the programming language set to properly highlight syntax and the proper copy directive
[ ] Have tested with npm run test and resolved all errors

@karthik2804 is there a way to fix this in Bartholomew?  Trailing punctuation doesn't normally prevent auto-linking in other Markdown environments I've used...?

I am not sure that I follow. Do you mean syntax like [example](www.example.com). They do work as expected.

@karthik2804 I think @itowlson meant the way the links were before this fix.  They were raw, valid links eg https://github.com/fermyon/spin/blob/main/wit/ephemeral. but my theory was the hyperlink functionality broke when punctuation was involved, such as the . at the end there.  Bartholomew issue or maybe js logic issue for this website?

@vdice @itowlson, it makes sense now. It is due markdown parser we use. it does not auto-detect URLs even in cases of lack of punctuation. I can look into it further. But from a quick glance, it looks like the syntax for the raw URL is <URL_HERE> that is the URL is enclosed in angled brackets.


[SAPUI5] sap.m.Switch contrast ratio not enough for the  SAP guidelines for accessibility

SAPUI5 version: 1.54.2
Browser/version (+device/version)
Chrome/65.0.3325.181 (Official Build) (64-bit)
URL (minimal example if possible):
<example with internal system showing the same as in https://jsbin.com/sakigecolo/edit?html,output -- edited by stephania87>
What is the expected result?
The switch btn contrast ratio should meet the ratio of 7:1 per the SAP guidelines for accessibility
<internal document reference to accessibility standards for color contrast -- edited by stephania87>
What happens instead?
The switch btn contrast ratio does not meet the ratio.
Any other information? (attach screenshot if possible)
Hi,
When developing widgets using SAPUI5, our QA reported an issue that the sap.m.Switch contrast ratio not enough for the  SAP guidelines for accessibility:

SAP+Accessibility+Standard:
<internal document reference to accessibility standards for color contrast -- edited by stephania87>

WCAG21/#contrast-minimum https:
//www.w3.org/TR/WCAG21/#contrast-minimum

I have reproduced this here: <example with internal system showing the same as in https://jsbin.com/sakigecolo/edit?html,output -- edited by stephania87>
But of course, you can directly check this from the UI5 demo pages.
Can you please help look at this ? Would really appreciate your help.
Best Regards,
Bodhi

@BodhiHu This is OpenUI5 GitHub space which is publicly visible. Please use publicly visible resources if you report an issue here.
The control's styles would look as follows - https://experience.sap.com/fiori-design-web/switch/#styles
You can also check how different states look with different themes here - https://openui5nightly.hana.ondemand.com/#/sample/sap.m.sample.Switch/preview (themes can be changed from the settings button next to the samples search)
When you perform accessibility testing, please consider the supported themes and their applicability:

https://openui5nightly.hana.ondemand.com/#/topic/a87ca843bcee469f82a9072927a7dcdb
https://openui5nightly.hana.ondemand.com/#/topic/086c41c2441946219384197a6c82072b
https://openui5nightly.hana.ondemand.com/#/topic/cfcbde260f354bcba07d2686f02a1708

If it is a matter of application development, you can submit an incident through the support system with details as URL to the application, screenshots and details how to reproduce the problem and how measures are taken. If there is an internal ticket, I can send you a document with the available design instructions for the control.


Extension causes high cpu load

Issue Type: Performance
Extension Name: LiveServer
Extension Version: 5.5.1
OS Version: Darwin x64 18.2.0
VSCode version: 1.32.2

:warning: Make sure to attach this file from your home-directory: /Users/chrisgasper/ritwickdey.LiveServer-unresponsive.cpuprofile.txt :warning:
Find more details here: https://github.com/Microsoft/vscode/wiki/Explain:-extension-causes-high-cpu-load

Hello. few questions!!,
When you're getting this issue? after load of vscode or after clicking to Go Live ?
Is this happen every-time ? or random ?
Please reply here https://github.com/ritwickdey/vscode-live-server/issues/278
Duplicate of https://github.com/ritwickdey/vscode-live-server/issues/278

[Note: This issue is closed by a javascript code (written by me).
https://gist.github.com/ritwickdey/36682dabe4a992c57e4562c935bfbbdd ]

Thank You.


[firebase_database]: TypeError: Instance of '_Exception': type '_Exception' is not a subtype of type 'JavaScriptObject'

Is there an existing issue for this?

[X] I have searched the existing issues.

Which plugins are affected?
Database
Which platforms are affected?
Web
Description
I have got this exception when I try to do any action to the Realtime database and this always happen only when i make a hot restart to the app
Reproducing the issue
.
Firebase Core version
2.30.0
Flutter Version
3.19.5
Relevant Log Output
Error: TypeError: Instance of '_Exception': type '_Exception' is not a subtype of type 'JavaScriptObject'
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 297:3  throw_
dart-sdk/lib/_internal/js_shared/lib/rti.dart 1385:3                         _failedAsCheck
dart-sdk/lib/_internal/js_shared/lib/rti.dart 1363:3                         _generalAsCheckImplementation
packages/firebase_database_web/src/utils/exception.dart 11:36                convertFirebaseDatabaseException
packages/firebase_database_web/src/query_web.dart 138:13                     <fn>
dart-sdk/lib/async/stream_pipe.dart 269:17                                   [_handleError]
dart-sdk/lib/async/stream_pipe.dart 157:5                                    [_handleError]
dart-sdk/lib/async/zone.dart 1606:9                                          runBinaryGuarded
dart-sdk/lib/async/stream_impl.dart 358:9                                    sendError
dart-sdk/lib/async/stream_impl.dart 376:7                                    [_sendError]
dart-sdk/lib/async/stream_impl.dart 280:7                                    [_addError]
dart-sdk/lib/async/stream_pipe.dart 128:11                                   [_addError]
dart-sdk/lib/async/stream_pipe.dart 176:7                                    _addErrorWithReplacement
dart-sdk/lib/async/stream_pipe.dart 215:7                                    [_handleData]
dart-sdk/lib/async/stream_pipe.dart 153:5                                    [_handleData]
dart-sdk/lib/async/zone.dart 1594:9                                          runUnaryGuarded
dart-sdk/lib/async/stream_impl.dart 339:5                                    [_sendData]
dart-sdk/lib/async/stream_impl.dart 515:13                                   perform
dart-sdk/lib/async/stream_impl.dart 620:10                                   handleNext
dart-sdk/lib/async/stream_impl.dart 591:7                                    callback
dart-sdk/lib/async/schedule_microtask.dart 40:11                             _microtaskLoop
dart-sdk/lib/async/schedule_microtask.dart 49:5                              _startMicrotaskLoop
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 181:7           <fn>

Flutter dependencies

Expand Flutter dependencies snippet

Replace this line with the contents of your `flutter pub deps -- --style=compact`.

Additional context and comments
No response

Hello @Abdulrhman-Khaled,
Thank you for reporting this issue. I have successfully reproduced the problem, and we are planning to have a PR to resolve it.


Add Grafana as AGPL-3.0 licensor

https://grafana.com/blog/2021/04/20/grafana-loki-tempo-relicensing-to-agplv3/

Good idea, thanks! Added 2 more and removed test exception for AGPL-3.0 examples since now we have 3.


[Tk-Glitch] Can PE libs support in 4.7 fix hackery problems with builtin DXVK winelib?

If DXVK winelib builds is dirty hackery with problems, and its not officially supported...
... Maybe building D9VK/DXVK as PE libs can fix many problems?
Is it possible to make builtin DXVK as PE lib?

This is exactly what a non-winelib build is.

feel free to adapt this https://github.com/Tk-Glitch/PKGBUILDS/tree/master/wine-tkg-git
This basically tells you all known to work ways of building dxvk (including builtin libraries).
An alternative is you might want to checkout this side with different build descriptions for arch packages -> https://aur.archlinux.org/packages/?O=0&SeB=nd&K=dxvk&outdated=&SB=n&SO=a&PP=50&do_Search=Go

You should also move your issue here:
https://github.com/Tk-Glitch/PKGBUILDS
This is not the issue tracker for TKG's pkgbuilds.

I asked already. I heard news about support for builtin PE libs in Wine 4.7
I was so worried about this idea... and nobody to ask at night, when everyone sleeping. So I asked everyone xD

Check this side -> https://github.com/doitsujin/dxvk
There is an area "manually compiling" and inside of the project there are the following 2 files:
build-wine32.txt and build-wine64.txt. These uses winegcc and create files which you can use instead of the wine default builtins.

I building now Tk-Glitch versions of MinGw D9VK + DXVK with patchset
I need patchset. It was only reason why I asking about "Builtin PEs"


Row Reorder (drag & drop)

First off, very cool project.
Are you planning to add drag / drop row re-ordering?

Thank you!
Yes, DnD is really significant functionality for grid.
I'm planning to implement it, however it's already possible now using $.fn.sortable, but it's more workaround.
Thank you for request.

I've created row reordering demo. You can find it on the demo page http://js-grid.com/demos/
It uses jQuery UI Sortable for rows reordering.

Decided not to implement this functionality as build-in since it's pretty simple to achieve it with jQuery ui sortable. Demos on the site cover this scenario.


data flow and offline data

So I am working on an app that will use GroundDB. I would like to use flow-router in that app but I am having a hard time building the data flow.
Here is what I mean:
//lets assume this route
FlowRouter.route('/myPost/:postId', {
  subscriptions: function(params, queryParams) {
        this.register('myPost', Meteor.subscribe('blogPost', params.postId));
    },
   action: function(params, queryParams) {
        console.log("Params:", params);
        console.log("Query Params:", queryParams);
    }
});

The above is great for online apps where you are only sending down the data that you need. But with all the data, much more then you need, already existing on the client, because they are offline, this does not work as well.
How would I tell my templates which post we want to look at? I could use Sessions but I want to get away from always using globals. I could use FlowRouter.getParam(paramName); but seems like a very bad idea and I doubt it will lead to DRY code. I am considering using FlowLayout and likely normal Blaze.

So after working with this I find FlowRouter.getParam does a good job and seems to not cause as many problems as I expected. I would still like to hear what others are doing. Maybe even start a generic  best practices guide.

After working with this a bit I found getParam works well enough. Closing as there has been on moment on this thread.


PreTeched 2018: Deploy your app to Fiori Launchpad

I am getting an Error on Stage 10 Step 7. Any help is appreciated. Thank you.
Stage 10.  Deploy your App to Fiori Launchpad
Step 7 View your Launchpad App
I get an Error it says. The App could not be launched please try again later. Not sure if this related to previous errors I have posted in separate threads.
Some Observations:

I guess the Stage 9 is not done correctly due to the other issues posted separately
When I run the App locally I get no data.

Can you please share the exact error you are seeing to help troubleshoot further?

Meredith, Now the error is gone. I can launch the app but it says no data. I am going to try couple of things you suggested and see if it helps.

Meredith ,

change the version for SAPUI5 back to Innovation

Unfortunately This did not help fix this problem. I guess the data binding is lost somehow. Not sure what to try next.

Meredith, I created a fourth app again today. This time checking each step which step breaks it. I noticed that as soon as we switch to ODataServices it breaks. Fixing the ToysSets to Sets and Partof to Parts doesn't fix it.  IF your app is working can you share your S1 Controller, S0 View and component.js if that's possible?
Also wondering have there been any successful app submissions recently by other users. Just curious if it is only me who is having this issue. Thanks.

I cannot share the code since these are public and this is an ongoing coding challenge.
Are you connecting to the odata service we provide? What is the error you are seeing at that step? You will need to deploy the app once you change over to the live service. It will no longer work with FLP Mock Service file.

Glad to hear things are working! The name does not matter so long as you have all green checkmarks on the mission page and have filled out the registration form at the end. Good luck!


[language][e2e tests] make event handle generation deterministic

Summary
Event handle generation in e2e tests is nondeterministic, which is not desired for a lot of tests. This makes it use the same deterministic logic used in the Move stdlib.
In the long run, we should get rid of the rust representation of LibraAccount in e2e tests and instead use Move scripts/function invocations to initialize the accounts.
Test Plan
Rebase https://github.com/libra/libra/pull/5877 on top of this, and the failing tests should pass.

/land


Guide: Updated gitignore guide to include file creation error in windows

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

this PR addresses https://github.com/freeCodeCamp/freeCodeCamp/pull/22036


feat: expose underlying dataset uri of the table

We frequently need to recover this uri so exposing it to make it easy

Yeah we def want to start supporting all of these. Just unblocking for the time being will create a ticket


Donot create transaction components for function work topic

Fixes https://github.com/apache/pulsar/issues/11481
Motivation

Assist https://github.com/apache/pulsar/pull/11494 to fix the problem that transaction cannot be started together with function
The three topics of the function were created twice at startup, and the second time the topic’s createIfMissing was set to false, causing the transaction’s PendingAck to fail to be created.
The three topics of the function do not require transaction components

Modifications

In PersistentTopic and PersistentSubscription, filter the three topics when creating PendingAckHandler and TransactionBuffer

Verifying this change
Add TransactionTest::testFilterFunctionTopicForTransactionComponentto verify
Does this pull request potentially affect one of the following parts:
If yes was chosen, please highlight the changes

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API: (yes / no)
The schema: (yes / no / don't know)
The default values of configurations: (yes / no)
The wire protocol: (yes / no)
The rest endpoints: (yes / no)
The admin cli options: (yes / no)
Anything that affects deployment: (yes / no / don't know)

Documentation
For this PR,  we don't  need to update docs.


#3509 fixed alignment of donate buttons

Related Issue
#3509
Fixes:  #3509
Description
I have fixed the alignment of the buttons in donate section. Now they are in same base line and looks good in the website.
#3509
Type of PR

[x] Bug fix
[ ] Feature enhancement
[ ] Documentation update
[ ] Other (specify): _______________

Screenshots / videos (if applicable)
Before:

After:

Checklist:

[x] I have made this change from my own.
[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[x] My changes generate no new warnings.
[x] I have tested the changes thoroughly before submitting this pull request.
[x] I have provided relevant issue numbers and screenshots after making the changes.

work with updated branch @jayashisbarua

work with updated branch @jayashisbarua

okay ma'am working on it

@sailaja-adapa ma'am I have created a new PR for this, can you please check.
#3673


External Links in Sidebar are not styled

Problem
Give details on your issue.
Reproducible Project
Just add this to your conf.py
html_theme_options = {
    "style_external_links": True
}

And this comes into your index.rst:
.. toctree::
    :maxdepth: 2

    Test <https://github.com/readthedocs/sphinx_rtd_theme>

Error Logs/Results
None
Expected Results
The External Link in the Sidebar should be styled as External Link, like all other External Links, but it does not.
Environment Info

Python Version: 3.11.0
Sphinx Version:  6.1.3
RTD Theme Version: 1.2.1a1

CC: @ericholscher fun timing since we just added styling here: https://github.com/readthedocs/readthedocs.org/pull/10039
Maybe we should just move it to the theme, I think it's generally useful.

Yea, I just wanted a quick fix :)


Bringing print styles into the Radium ecosystem

This is an attempt to handle print styles within the Radium ecosystem. This might not align with your vision so before I add tests and learn how to do flow annotations I thought I'd check what you guys think of this.
Basically this arises from the issues described in #132. The end result of that issue is that in order to do print styles properly, you need CSS styles with a media query in. Given that I initially went with creating a <PrintStyle> component described in a short blog post.
But I just started doing some more serious work on print styles in our application and this pulled up another issue not listed in that blog post in that when you have an item that is repeated, the styles are repeated for each item. This seemed really wrong so I thought of another solution that works similarly to Relay, in that it looks at all the components that are currently rendered and outputs a


Compiler: allow trailing commas inside tuple types

This is a small enhancement. Trailing commas are super useful when generating code with macros, to not care about putting that one extra comma at the end.

I would say it's a language change rather and a compiler bug :-)

@bcardiff Good call, I changed the label to kind:feature.

join


Memoized and frozen

This changes Memoization to support frozen objects, and memoizes IdentifiableCollection#[].

The coverage failure is addressed in a770a5467e6a67315d26bb2c8186b6f48fa3e758.


Remove GlobalBasis.find_dofs

The method GlobalBasis.find_dofs could now be removed since we have Submesh. Before doing that one should check whether any examples break.

 This is too much work for almost no gain so I drop it for now.


Make _build_message in Email library protected

I'd like the ability to name my attachments, so I subclassed the Email library, overriden the attached function to accept a new parameth ($filename_email), and in it I save the $filename_email in a new member array (Email::_attach_name_email).
And now I need to alter the _build_message function and swap the line 1130:
$basename = basename($filename);

to
  if (!is_null($this->_attach_name_email[$i])){
    $basename = $this->_attach_name_email[$i];
  }
  else{
    $basename = basename($filename);
  }

But I can't because the _build_message is private.
Better still maybe we can include this minor update in the next version of CI ;)
PS: in the mean time I'm just gonna alter the core library.

If you already have the code for this, why not submit it as a pull request?

It's already protected in both 2.1-stable and develop branches.


Support operation of our own installation of Airbyte

As a data platform owner I would like to be able to run Airbyte on our own infrastructure so that raw data doesn't leave our premises or get accessed by third-party systems.
We are incorporating Airbyte as a component of our data platform infrastructure to support Extract and Load functionality for data integration. We currently have an account with their cloud offering but we would like to ultimately run it ourselves. There is an existing option for managing it on EC2 via docker-compose, but we will likely need to modify it slightly to avoid using the built-in database container.

[ ] Create an AMI that incorporates a modified docker-compose file for running Airbyte as a service

Additional instructions are available at https://docs.airbyte.com/deploying-airbyte/on-aws-ec2/

[ ] Proxy the Airbyte web service with a process that will manage user authentication (basic auth is acceptable for the v1 implementation)
[ ] Deploy the Airbyte AMI into an AWS autoscale group to ensure uptime and simplify deployments of the image
[ ] Create an RDS database for Airbyte to use as persistent storage of its state and configurations using Pulumi

This is dependent on #824

There's a project called Pomerium that we might be able to use for managing user access at the web proxy level https://www.pomerium.com/


cmake: Sync FindVulkanHeaders.cmake with VVL

This picks up a few fixes, notably https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/1393 which helps with cross-compiling.

CI Vulkan-Tools build queued with queue ID 21382.

CI Vulkan-Tools build # 815 running.

CI Vulkan-Tools build # 815 passed.


Release 0.4.0 binaries format

Why tag.gz.zip?

Ah, not sure what's happened there. That seems to only affect v0.4.0 because earlier versions have the correct extensions.
Even stranger, the artifacts on the GitHub Action that's supposed to generate the release are correct as well, so I'm not sure how that's happened. I'll replace them with the correct ones.

OK, that's fixed 👍 The binaries on the 0.4.0 release are now correct.
Sorry about that, it won't happen in the next release.


make hosts configurable

Implemets #1019.
To note: It includes an extra flag for the address instead of collapsing it with the port. I believe that this is a better approach, as seen in most other packages that have opted for this way.

#1036 is merged, please rebase @Exca-DK

Needs another rebase :(

@Exca-DK I think it needs another rebase!

Hey, we refactored our http servers. Do you mind rebasing and adapting your PR?

Hey @omerfirmak . I rebased and adopted this pr.  I also noticed that now every host and port flag is almost identical. They could be collapsed into one and just formatted with %s.

This looks good to me. Mind making changes to the example configuration in docs/docs/example_config.md?

now every host and port flag is almost identical

I agree it's not ideal from a configuration perspective, but it allows for fine-grained access control based on the host and port.


[Feature]: Additional possible value for tool_choice: required

🚀 The feature, motivation and pitch
I'm currently making an agent using LLM which required using external tools. There is step in completion where tools is required to be called but what kind of tool is used is up to the LLM. In openAI API, there is parameter called tool_choice and we could set it to required to make LLM always use external tools but we as user do not choice what tool to use.
Alternatives
No response
Additional context
Here is what is written in openAI API documentation

Before submitting a new issue...

[X] Make sure you already searched for relevant issues, and asked the chatbot living at the bottom right corner of the documentation page, which can answer lots of frequently asked questions.

For my education, what is the complexity for implementing required? It's the latest to come out (after auto and none), so I am wondering what causes the delay?


Odd flushing behavior

I'm used to fprintf() intelligently flushing my output streams, e.g. when writing brief text blurbs to stderr in a Read Eval Print Loop application. However, CloudABI appears to wait until the program is terminating to flush. Could we get the flushing behavior closer to a typical GNU/libc fprintf() implicit flush?
As a workaround, I am doing this for important user feedback sections:
fprintf(console, "blahblahblah\n");

#if defined(__CloudABI__)
    fflush(console);
#endif

@EdSchouten Oh, thank you for clarifying!
Would it make sense for the yaml config to offer a tty bool option on fd's? Perhaps this could automatically be enabled for the stdout, stderr streams.


virus detected

When I downloaded the latest version, this virus was detected: Trojan:Win32/Vigorf.A

This is a false positive. You'll need to disable or bypass your virus scanner. See #154, #158, #167.


Fault Tolerance hook script improvements

Description
Improve the handling of local datastore VMs with the Fault Tolerance hook script.
Use case
When using VMs on a hosts which have mixed shared and local datastores the only options right now are to have the virtual machines be recreated or deleted during a failure.  This would allow the script to migrate shared VMs while ignoring locally stored VMs.
Additional Context
The script will need to check all disks of a virtual machine to determine if it is shared or local, which will determine behavior. When the fault tolerance script is configured to migrate any VMs on the failed host, this should skip over any VMs which contain at least one locally stored disk while still migrating any VMs which are fully on shared storage.
Progress Status

[x] Code committed
[x] Testing - QA
[x] Documentation (Release notes - resolved issues, compatibility, known issues)

PR for script: https://github.com/OpenNebula/one-ee/pull/2583
PR for docs: https://github.com/OpenNebula/docs/pull/2550


Custom templates

#441
Added option --custom-template.
usage tsdx create app_name --custom-template ~/Desktop/templates/my_template
One important thing is template.json inside the template folder.
If this method is satisfies the reviewers, then I will add documentation and checking for template.json file.

Imho all templates should be remote

Imho all templates should be remote

May be via npm, not all companies use github?

We're using TSDX pretty heavily on a monorepo, and it causes you to make the same series of changes each time. I think custom templates is a much better option than forking. Can we reopen this PR?

@kdubb1337 same problem in here


Natural Earth data with scalerank for upper zoom levels

We should verify how to make good looking upper zoom levels in open-streets.tm2source.
It seems a general practice is to utilise instead of OSM database the data from Natural Earth Data (http://www.naturalearthdata.com).
MapBox Streets may work a lot with "scalerank" which originates in NaturalEarth Data and is not available in OSM (to my knowledge - check it). Without this the maps may be overfilled with content and may look uglier.
https://www.mapbox.com/guides/osm-and-mapbox/#mapbox-streets-and-openstreetmap:

Data for Mapbox Streets comes primarily from OpenStreetMap, with Natural Earth and our own tweaks used for some parts.

https://www.mapbox.com/blog/2012-08-09-mapbox-streets-design-update/:

Previously our zoomed out views of the globe used city labels from Natural Earth, and we only started showing OpenStreetMap names after you zoomed in a bit. This worked well because Natural Earth has a much more granular ranking classification system aimed at helping cartographers choose the right sizes and density of labels for their maps. The Natural Earth place names, for the most part, are only in English. But we still want to take advantage of the many locales that OpenStreetMap contributors have put together, especially to show place names in their local language and writing system.
To get the best of both worlds we joined Natural Earth’s scalerank information into our OpenStreetMap places table. This was not straight-forward ...

The open source of information regarding usage of Natural Earth data in vector tiles:
https://github.com/mapzen/vector-datasource
https://github.com/mapbox/natural-earth-tm2
It seems that https://maps.wikimedia.org/ #28 are not using the Natural Earth data at all ... right? Do we have any comments from them on this point?

The relevant code to run on imposm imported data for enrichment with scalerank:
https://github.com/mapbox/osm-place-ranks

Country labels with scalerank and labelrank for upper zoom levels could be possibly taken from:
https://github.com/osm2vectortiles/natural-earth-tm2/blob/master/natural-earth.tm2source/data.yml#L355

We probably don't need to merge natural-earth into osm database for our vector tiles. We can have two separated databases in Postgres - and the .tm2source style could query both.
This approach is used in Mapzen Vector Tiles (see https://github.com/mapzen/vector-datasource/blob/master/queries/landuse.jinja2) and was used in early MapBox Streets.
@lukasmartinelli could you please reply on:

It seems that https://maps.wikimedia.org/ #28 are not using the Natural Earth data at all ... right? Do we have any comments from them on this point?

It seems that https://maps.wikimedia.org/ #28 are not using the Natural Earth data at all ... right? Do we have any comments from them on this point?

I will ask them specifically but from the two people we asked last time this topic never popped up.

Quality of the labels is indeed quite noticable.
Mapbox OSM Bright

Wikimedia

@lukasmartinelli application of https://github.com/mapbox/osm-place-ranks for places looks pretty straightforward.
Where would it fit into our import process?
Shall this run always in the import container?

Where would it fit into our import process?
Shall this run always in the import container?

I would like to create a new container rank-places like import-water because then each container has one single purpose and process. And from what I see it does not matter whether this runs before import or after import.
We need to query the improved places table ne_cities in the source project so the component is required to run otherwise the tm2source will fail.
I will write that container, shouldn't take long. @manuelroth can then query the data at a later stage of our zoom level improvements.

[ ] rank-places modification
Are you sure this should be a separate step?

They write:

These can be from a full planet dump, a regional extract...

It must run after (or together with) an planet import - because it is modifying the imposm's osm_places table. The ne_cities table is only a temporary table  - and probably does not need to be used in our tm2source directly. Maybe it is not even required once you run the rank-places.py, and could be then removed from PostGIS...

[ ] natural_earth
But we will need a separate docker import_natural_earth which will import our Postgis the "natural_earth" database - see ./util/setup_db.sh from https://github.com/mapbox/natural-earth-tm2. This should be quite straight forward and it does for sure belongs to a separate docker.

Could you please look into these two things?

Oh did not look to deeply into rank-places.py before, but it is a UPDATE so it must run after import.
And because it requires the python runtime it is also better to use a separat image.
What it does:

Merge overrides into natural earth data
Query natural earth data
Query OSM data
Do fuzzy matching in python of both results
Update osm_places

I will first try to fix the water problem. Then I will look into the ranks.

OK. Thanks.
BTW I think it is not dependent on the natural earth data at all - is uses only a single .sql file included in the repo: ne_cities.sql - so points 1. and 2. are not true IMHO.
Anyway - we will need both points mentioned above for the scalerank to appear in the vector tiles... THX!

Didn't get https://github.com/mapbox/osm-place-ranks to work after first try. Doesn't find any matches in my case - it is pretty hacky code, I wonder how it worked once.
Perhaps we just show the cities directly from natural earth data (and leave the translations from OSM be for lower zoom levels). Need to check that out.

Perhaps we could use the OSM-ID to NaturalEarthData linking which KlokanTech has made about two years ago for GeoSEO applications: http://www.mapranksearch.com/geoseo/ - it would be 12092 records (for ne_10m_geography_regions, ne_10m_admin_0_countries, ne_10m_admin_0_map_subunits, ne_10m_admin_1_states_provinces, ne_10m_populated_places) with a structure like:
[ne_title VARCHAR, type_id VARCHAR, osm_id VARCHAR]
For example:
Zürich|10m_cultural/ne_10m_populated_places.shp:7161|relation/1682248
for http://www.openstreetmap.org/relation/1682248
Could you please check if it be helpful enough for binding the ranks to OSM-IDs?

We could use it to just do the mapping - that probably would be the best solution but also requires most time.
Let's try simple name matching first and see how far we get - perhaps it is good enough.
In https://github.com/osm2vectortiles/osm2vectortiles/commit/cfa4ab5db33eac0a04819a8db90ed97d9bceb34d I just do very simple name matching in PostgreSQL (also tried using fuzzy matching in PostgreSQL like in the Python script but results where not that much better (just had more false positives) - so better have less scaleranks at all than wrong scaleranks in my opinon).
We now import the natural earth data in https://github.com/osm2vectortiles/osm2vectortiles/tree/feature/natural-earth so we can start querying it.
This introduced two additional docker containers (rank-places and import-natural-earth) but at one point we have to simplify the amount of docker containers again e.g. just use one import container for external data.

We can still use OSM data and just merge the scalerank for the following features:

Cities
Marine (Oceans and Seas)
Countries

For admin we have to try out how it looks if we just use Naturalearth data instead of OSM data - I don't know how detailed it is.

We just found out that actually all admin layers in Mapbox have the OSM id set to 0 until zoom level 13.
On zoom level 14 they have an OSM id.
This looks like they use natural earth data for admin down to z13 and then use OSM data.

Wrong assumption -> Mapbox only uses OpenStreetMap data for boundaries.
We can actually see that they have the same fails in boundaries as we have with OSM data.
In v6 they mark it as maritime so that it looks better.
What we have to add is marking all boundaries which are in a water polygon as maritime=1
Below is all Mapbox with the same problems we have.

What we are doing now with the borders:

We take the maritime borders from OSM data because Natural Earth only provides partial data there
And we take all other data we take from Natural Earth (including disputed, country borders)

Marine Labels:

Mapbox did certainly not just take the natural earth scaleranks for marine labels
But I just figured out, that if we add one to the natural earth scalerank of the marine labels we get very close to it.
There are still labels which have too high scalerank

But I just figured out, that if we add one to the natural earth scalerank of the marine labels we get very close to it.

:+1:

There are still labels which have too high scalerank

Yes we have to write a normalize function that ensures the values are in the range specified by Mapbox.
I did something similar for the place_label query.

I identified major problems on following layers:

[ ] water polygons (lakes) look not good on level 0 to 5
[ ] we show too many marine labels with wrong scalerank
[ ] country labels need improvements on level 3
[ ] in north america we show less place labels on level 4 to 5
[ ] since we use osm data starting level 7 on the admin layer some borders are still broken

water polygons (lakes) look not good on level 0 to 5

Water polygons look now perfect, we use natural earth data from zoomlevel 0 - 5

since we use osm data starting level 7 on the admin layer some borders are still broken

You mean OSM borders that are in the water but are not marked as maritime?
Can we even solve this without fiddling with the data?
At least it looks much better from far away - having the weird borders show up when you zoom in looks much better and is perhaps even expected (I mean there must be some reason they exist - otherwise people wouldn't tag them).

we show too many marine labels with wrong scalerank

Is it a problem of the matching - that some entities have higher scalerank than they should have from natural earth?
Perhaps I match the wrong OSM ids with natural earth data?

You mean OSM borders that are in the water but are not marked as maritime?
Can we even solve this without fiddling with the data?

Yes, I can't see a straight forward way to solve this right now.

I finished the work you started with the natural earth scalerank for country labels and removed the population based calculation.
But I still don't know how they decide when to show the iso codes of the countries.

Its not based on the length of the country name, it must have something to do with the density of labels.

Weird so the data of Mapbox has the iso_code  set as name? In v6 they provide it as additional field.
Is the scalerank attribute set for the screenshot on the left? Because then Brazil and Mexico should be bigger..?

Weird so the data of Mapbox has the iso_code set as name? In v6 they provide it as additional field.

Yes, they set the iso code as name also in the translation fields (name_en ect.). The scalerank is set, there are also differences Mapbox sets scalerank for brazil and mexico to 1 and natural earth to 2.

But I still don't know how they decide when to show the iso codes of the countries.

Have you tried using the iso_code as name for countries with e.g. a scalerank > 3?
And I saw you use the labelrank from Natural Earth instead of scalerank - you know what the difference is there?

Update on the marine labels:

Most of the things we show as polygons (left side) Mapbox shows as linestring. What confuses me, is that these seas are not even present as linestring (nor in osm data or natural earth).
Example (Black Sea):

Most of the bays we show, are not present in mapbox streets v5

Have you tried using the iso_code as name for countries with e.g. a scalerank > 3?

I will try that, maybe we come close enough with this.

And I saw you use the labelrank from Natural Earth instead of scalerank - you know what the difference is there?

I suppose the labelrank is for labels, I don't now what the difference is. I choose it because in many cases it is similar to the scalerank of mapbox has on the country label layer.

I tryed your idea ( showing iso_codes as name for countries with scalerank > 3). The problem is that not many countries have set there iso code. Right now it looks like this:

I will try to add the iso code of natural earth, and see if it looks better.

Could you please try the latest OSM Bright 2 in MapBox Studio Classic - the one which is using Streets V6? I tend recently to be move V6 compatible then V5 on upper zoom levels - whenever possible.

See #71

If I remember well labelrank in Natural Earth is if you want to reduce number of labels displayed (typically show smaller number of labels on the map) while scalerank is about importance of the features  - if it is more important then others then you can use bigger font or display it on upper zoom levels then other features.

With mapbox streets v6 (right side) they moved back to the full country name. I tryed to come close to what they have, but it still needs some refinement.

@lukasmartinelli I found some issues with the name comparison.

For example US:
osm name: United States of America  and  natural earth name: United States
or Czech:
osm name: Czech Republic and natural earth name: Czech Rep.
I updated the sql function with the necessary changes.

Hey @manuelroth that looks much better!! Thanks!

@lukasmartinelli I found some issues with the name comparison.

Great. When importing with the container you should see how many rows have been updated.
We could go back to fuzzy matching - but I am a bit afraid we match too many.
We also seem to have quite different marine labels and they are quite difficult to get right from OSM data with matching alone. What about using only Natural Earth data for marine labels instead of merging it?
We could use the marine polygons (or there is also a point table) from Natural Earth for labeling and don't support all translations on seas.


Failed to construct WebSocket

By using following code:
 const RPCClient = window.DiscordRPC.Client;

  const client = new RPCClient({
  	OAUTH2_CLIENT_ID: 'xxxxxxxxxx'
	});

  	client.on('ready', () => {
  	console.log('Authenticated!');
  	console.log('User:' `${client.user.username}#${client.user.discriminator}`, client.user.id)
  	console.log('Application:', client.application.name, client.application.id);
  	client.getChannels().then(res => {
    // res is an array of channels :)
 	 });
  });

  client.connect("xxxxxxxxxxxxx");

this error occurs:
Uncaught DOMException: Failed to construct 'WebSocket': The subprotocol '[object Object]' is invalid.
    at RPCClient.connect (file:///Users/xxxxx/Desktop/test.html:418:21)
    at Client.connect (file:///Users/xxxx/Desktop/test.html:2177:23)
    at file:///Users/xxx/Desktop/test.html:3254:10

should be fixed in df8c052796315e70f0ca0c93532c21f5998db890


Editorial review of the ML notebooks.

In addition to doing a copy edit of the notebooks, I did the following:

Removed the Beam RunInference button that some have at the top and replaced it with an inline link. The button isn't rendering correctly when the notebooks are imported to Devsite, and the it's not clear where the link in the button takes you.
Tried to fix the formatting of the licenses to match the multi model format, which renders correctly on devsite.
Fixed the headings in some notebooks so that they render correctly.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

R: @dusan-rychnovsky
R: @rezarokni

R: @ryanthompson591


Support for OpenPGP V5 keys

Bouncy Castle currently does not yet support OpenPGP V5 keys.
(I added V5OpenPgpKeyTest to confirm this).
This doesn't come as a surprise of course, since the standardization efforts aren't even finished yet.
However, we could think about how to work towards future support already.
From the stacktrace given by the test I suppose that algorithm support in BCs ECPublicBCPGKey class is needed:
future extensions not yet implemented
java.io.IOException: future extensions not yet implemented
	at org.bouncycastle.bcpg.ECPublicBCPGKey.readBytesOfEncodedLength(Unknown Source)
	at org.bouncycastle.bcpg.ECPublicBCPGKey.<init>(Unknown Source)
	at org.bouncycastle.bcpg.EdDSAPublicBCPGKey.<init>(Unknown Source)
	at org.bouncycastle.bcpg.PublicKeyPacket.<init>(Unknown Source)
	at org.bouncycastle.bcpg.BCPGInputStream.readPacket(Unknown Source)
	at org.bouncycastle.openpgp.PGPPublicKeyRing.readPublicKeyPacket(Unknown Source)
	at org.bouncycastle.openpgp.PGPPublicKeyRing.<init>(Unknown Source)
	at org.bouncycastle.openpgp.PGPObjectFactory.nextObject(Unknown Source)
	at org.pgpainless.key.parsing.KeyRingReader.readPublicKeyRing(KeyRingReader.java:224)
	at org.pgpainless.key.parsing.KeyRingReader.readPublicKeyRing(KeyRingReader.java:203)
	at org.pgpainless.key.parsing.KeyRingReader.publicKeyRing(KeyRingReader.java:77)
	at org.pgpainless.key.parsing.KeyRingReader.publicKeyRing(KeyRingReader.java:82)
	at org.pgpainless.key.parsing.KeyRingReader.publicKeyRing(KeyRingReader.java:87)
	at org.pgpainless.key.V5OpenPgpKeyTest.testParseCert(V5OpenPgpKeyTest.java:53)
[...]

I think this indicates that the class cannot yet parse keys with lenght encoding bytes where the first byte is a zero?
Related BouncyCastle source that throws.
Related certificate dump.
What makes me wonder a bit is, that apparently the length byte that if I manually count the bytes, I end up at a byte with value 0x16, which should not trigger the exception. Maybe I am doing something wrong, or the key is malformed after all.
We will see...

just wanted to note that due to the upcoming release of the crypto-refresh draft, this (and the milestone) should probably be update to refer to v6, not v5.

WIP: https://github.com/bcgit/bc-java/pull/1353

Some support for this was merged with https://github.com/bcgit/bc-java/pull/1411 and https://github.com/bcgit/bc-java/pull/1413
The new algorithms (X25519, X448, Ed25519, Ed448) cannot yet be used productively though.

Thanks for working on this!  Note that v6 key, signature, and OPS support should be possible independently of the new pubkey algorithm types.  Would it make sense to have a separate issue to track the native EdDSA and CFRG X* pubkey algorithms?

ping here on the status v6 key, signature, and OPS support, independently of the new pubkey algorithms.

There is still v6-related work ongoing on the Bouncy Castle side, so until that is finished, it does not make much sense for me to work on v6 support in PGPainless.


Add an option to split bundle load from execution

Experiments at Redfin with the jsBelowTheFold option have turned up some improvement in time to display content at the expense of degradation of time to make the page interactive.  This new option is an attempt to retain the benefit while regaining some of the lost ground in terms of interactivity.
The load of JS bundles is started immediately, but the parse of the bundles is delayed until <TheFold/> is reached.
Pages can opt into this using the response from handleRoute():
handleRoute() {
  ...
  return {code: 200, splitJsLoad: true};
}

There is also a ?_debug_split_js_load=1 option that may be used for testing.

139 specs, 85 failures

😳
That must be some sort of record...

Ugh, looks like the XHR loading doesn't work in the jasmine tests.  I guess they were falling through to cache-preloading?  That doesn't work in modern Chrome.
How does React Server even work? 🤦♂

Okay, tests all passing. 👍

This may not have anything to do with anything, but when I was working on the server-side webpack stuff I ran into a similar issue with the tests failing after combining the HTML + JS servers (thus removing the separate CORS domains).  I placed the following comment in my file when I made the change:
		if (process.env.NODE_ENV === "test") { // eslint-disable-line no-process-env
			// ZombieJS does not handle loading async scripts in the proper order and ensuring that .wait() waits for
			// execution.  Thus, we need to force LABjs to not use local XHRs in order for all tests to work properly.
			// This used to work prior to combining the HTML and JS servers into a single server because the JS files
			// were considered part of a different domain when running tests, so it never used XHR preloading, it used
			// "cache preloading".
			// https://github.com/getify/LABjs/blob/master/LAB.src.js#L152-L175
			res.write("$LAB.setGlobalDefaults({UseLocalXHR:false,AlwaysPreserveOrder:true});");
		} else {
			// We always want scripts to be executed in order.
			res.write("$LAB.setGlobalDefaults({AlwaysPreserveOrder:true});");
		}

I ran into a similar issue with the tests failing after combining the HTML + JS servers

Yeah, ZombieJS is just weird enough to stumble on things that browsers don't have trouble with.  In this case I was able to address it with a check that wasn't literally if (test), which I prefer when possible.  Thanks for the context.
Any objections to this?  Pretty excited to try it out!