Websocket timeout issues

With 0.50.2 repeated calls to ledger_data whilst also streaming the ledger and transaction streams leads to timeouts in the Server code in rippled with log_level set to trace:
2017-Feb-22 20:10:35 Server:TRC Websocket received '
{
        "binary" : true,
        "command" : "ledger_data",
        "id" : 39,
        "ledger" : 27861637,
        "marker" : "1AC61580EF42AA58D69059995313F05C5342E6AC2BA6A46A51EFB508C0F79C75"
}
'
2017-Feb-22 20:10:35 Server:TRC Websocket received '
{
        "binary" : true,
        "command" : "ledger_data",
        "id" : 40,
        "ledger" : 27861637,
        "marker" : "1B7EA1321C09D8421502B0A63EAD615EA3CB92EEB6393909312EA76C002C7289"
}
'
2017-Feb-22 20:10:35 Server:TRC ##22 timer: Connection timed out
2017-Feb-22 20:10:35 Server:TRC ##23 read: End of file
2017-Feb-22 20:10:35 Server:TRC ##24 write: Broken pipe

Problem is not seen in 0.40.

How big do you expect the returned data-set to be? in megabytes?

Changing this timeout to 30 from 3 seems to fix the issue:
https://github.com/ripple/rippled/blob/209fe8f7a92a74b173f2b23ae263c4885fc5b16d/src/ripple/server/impl/BaseWSPeer.h#L368
I'm connecting locally, so I guess I'm not processing both the streamed data and the ledger_data responses within 3 seconds in all cases.

Hmm...that look sketchy! I will investigate

We're going to make a change so that the 3 second timeout will only happen during unit tests. Websocket connections from the loopback address will be 30 seconds.

Sounds good to me.

Looks like the same issue crops up more sporadically, one or two times a day:
2017-Feb-23 18:58:50 Server:TRC #23277 destroyed: 1 request
2017-Feb-23 18:58:58 Server:TRC #23278 accept:    <IP_ADDRESS>
2017-Feb-23 18:58:58 Server:TRC #23278 destroyed: 1 request
2017-Feb-23 18:59:00 Server:TRC #23279 accept:    <IP_ADDRESS>
2017-Feb-23 18:59:01 Server:TRC #23279 destroyed: 1 request
2017-Feb-23 18:59:02 Server:TRC #23280 accept:    <IP_ADDRESS>
2017-Feb-23 18:59:03 Server:TRC #23280 destroyed: 1 request
2017-Feb-23 18:59:15 Server:TRC ##8 timer: Connection timed out
2017-Feb-23 18:59:15 Server:TRC ##9 read: End of file
2017-Feb-23 18:59:23 Server:TRC #23281 accept:    <IP_ADDRESS>
2017-Feb-23 18:59:23 Server:TRC #23281 destroyed: 1 request
2017-Feb-23 18:59:25 Server:TRC #23282 accept:    <IP_ADDRESS>
2017-Feb-23 18:59:25 Server:TRC #23282 destroyed: 1 request
2017-Feb-23 18:59:41 Server:TRC #23283 accept:    <IP_ADDRESS>
2017-Feb-23 18:59:41 Server:TRC #23283 destroyed: 1 request

##8 and ##9 refer to my connection.

Is it because you are requesting data that takes more than 30 seconds? Try changing the timeout to 5 minutes?

After the first 10 or 15 seconds at startup, I've done all the ledger_data requests I'll ever do. After that it's just reading the transaction and ledger streams and the occasional submit. When the timeout gets logged, no API call was in progress.

So could this be that... it actually timed out due to inactivity?

Well, my code got disconnected last time around ledger 27881937. Doesn't seem like there was any large gaps between ledgers around that time, so the stream data should have been been resetting the timeout I assume.
I use a separate connection for submitting trades however. Maybe that one is timing out? Where is the timeout set between API requests? Looks like the timeout might be roughly an hour after the last submit on that second connection. Not sure an inactivity timeout is great for a bot when markets go quiet :-)

If a client goes idle, rippled should issue a websocket ping every so often to keep the connection alive. We are looking into it. Probably a bug in the server.

Try giving this a spin? https://github.com/vinniefalco/rippled/tree/0.50.3
Thanks

/usr/bin/g++ -o build/gcc.release/src/ripple/unity/app_main.o -c -Wall -frtti -std=c++14 -Wno-invalid-offsetof -pthread -Wno-sign-compare -Wno-char-subscripts -Wno-format -g -Wno-unused-but-set-variable -Wno-deprecated -O3 -fno-strict-aliasing -Wno-unuse
d-local-typedefs -DOPENSSL_NO_SSL2 -DDEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER -DHAVE_USLEEP=1 -DSOCI_CXX_C11=1 -D_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS -DBOOST_NO_AUTO_PTR -DBOOST_COROUTINE_NO_DEPRECATION_WARNING -DBOOST_COROUTINES_NO_DEPRECATION
_WARNING -DNDEBUG -D_FILE_OFFSET_BITS=64 -Isrc -Isrc/beast -Isrc/beast/include -Isrc/beast/extras -Isrc/nudb/include -Ibuild/proto -Isrc/soci/src -Isrc/soci/include src/ripple/unity/app_main.cpp
In file included from src/ripple/server/impl/PlainWSPeer.h:23:0,
                 from src/ripple/server/impl/PlainHTTPPeer.h:24,
                 from src/ripple/server/impl/Door.h:26,
                 from src/ripple/server/impl/ServerImpl.h:25,
                 from src/ripple/server/Server.h:24,
                 from src/ripple/rpc/impl/ServerHandlerImp.h:25,
                 from src/ripple/rpc/ServerHandler.h:29,
                 from src/ripple/overlay/make_Overlay.h:23,
                 from src/ripple/app/main/Application.cpp:65,
                 from src/ripple/unity/app_main.cpp:24:
src/ripple/server/impl/BaseWSPeer.h: In member function ‘void ripple::BaseWSPeer<Handler, Impl>::start_timer()’:
src/ripple/server/impl/BaseWSPeer.h:436:13: error: ‘remote_address_’ was not declared in this scope
             remote_address_.address().is_loopback() ?
             ^
scons: *** [build/gcc.release/src/ripple/unity/app_main.o] Error 1
scons: building terminated because of errors.

Sorry about that, Visual Studio strikes again. I've fixed the error (hopefully) waiting on Travis now. The branch has been rewritten.

Seems to close the connection even more aggressively now (both connections with in around 5 seconds) . Can you replicate my original issue at your end using 0.50.2?

I know this one works
https://github.com/vinniefalco/rippled/commits/develop

This one also works, tested it using a browser script. It stays connected even when idle
https://github.com/vinniefalco/rippled/tree/0.50.3
I am not sure what your issue is. It might be something other than an idle timeout.

I tried your 0.50.3 tag and it disconnected more quickly as described. Not sure a browser implementation of a websockets client is going to cover all bases. In my bot, using Go, I'm also pinging every 60 seconds:
https://github.com/rubblelabs/ripple/blob/master/websockets/remote.go#L552-L558
This is a regression as 0.40 could keep running for weeks/months at a time :-) If you need a Go repro I can knock one together tomorrow, but you'd have to install Go to build it.

Well 0.40.0 used websocketpp while 0.50.0 uses Beast. Its not surprising that there's a bug. We'll figure it out!

Dat's da moonshine!

@donovanhide is your Go websocket client responding to pings (I see that it sends them but does it also reply)? rippled will not reset its timer just because it hears a ping. It only resets the timer if it gets a pong in response to a sent ping.

Default behaviour is to reply to all pings with a pong:
https://godoc.org/github.com/gorilla/websocket#hdr-Control_Messages
https://github.com/gorilla/websocket/blob/master/conn.go#L1041-L1054
I'll try and get a barebones repro built.

See https://github.com/ripple/rippled/pull/2032

Is this fix not going to be in 0.60?

There were two versions of the fix. A good one, and a great one. The great one includes improvements to Beast that allow concurrent ping and write operations. Its being sorted out so it can go into some version.

The fix Vinnie describes will go into 0.70.0.

I'm still getting intermittent disconnections. This sounds like other people experiencing the same:
https://www.xrpchat.com/topic/3341-websocket-closing-ripple-lib

@donovanhide Were you testing with 0.70.0-b2? The fix should be 15f969a469e6e2c687d5fc03aedbd88b652aaca3.

Yep:
# git log                                                                                commit dbe74dffcb1c3edaaf0bc8a6f6f834fc13358ff8                                                                                Author: Brad Chase<EMAIL_ADDRESS>                                                                                Date:   Tue Mar 21 13:21:51 2017 -0400                                                                                Set version to 0.70.0-b2

For me, testing with the public facing servers (at s1, s-west etc) confirms:

If you don't subscribe to anything, the socket will likely stay open indefinitely.  The issue appears related to the server sending messages.
In all cases I observed, when the server closes the socket, it does so after 30 seconds idle time since the last sent message was received by the client. Subscribing to a sufficiently busy source of data may cause this issue to go unnoticed.
It is possible to connect to a public Ripple-operated rippled server that does not have this issue, but the overwhelming majority do appear to have it.

This pull request fixes the websocket disconnect issue.

@miguelportilla Is the fix already on ripple public servers?

@tuloski not yet.

Any ETA?

@professorhantzen We will likely be releasing & deploying 0.60.1 this week, so that we can have this fix on the public servers.

Thank you, that'd be great.

@professorhantzen, @donovanhide, @tuloski: the fix is live on <IP_ADDRESS>. Can you check against that please? Thanks.

@nbougalis Have tested Mickey's pull request locally and have had a few days of no disconnects on the subscribe stream connection. I did experience a write timeout on my second connection which submits transactions, although haven't been able to replicate that yet with trace logging enabled.

Awesome, thanks @donovanhide.

Seems to be working here. I made a test that would reliably close before, and now it reliably stays open.

Unfortunately still getting disconnects with 0.60.2, less frequent, but present:
2017-Mar-31 16:20:30 Server:TRC ##20 sent ping
2017-Mar-31 16:20:30 Server:TRC ##20 got matching pong
2017-Mar-31 16:20:33 Server:TRC ##20 sent ping
2017-Mar-31 16:20:33 Server:TRC ##20 got matching pong
2017-Mar-31 16:20:36 Server:TRC #5229 accept:    <IP_ADDRESS>
2017-Mar-31 16:20:36 Server:TRC #5230 accept:    <IP_ADDRESS>
2017-Mar-31 16:20:36 Server:TRC ##20 sent ping
2017-Mar-31 16:20:36 Server:TRC ##20 got matching pong
2017-Mar-31 16:20:36 Server:TRC #5230 destroyed: 1 request
2017-Mar-31 16:20:36 Server:TRC #5229 destroyed: 1 request
2017-Mar-31 16:20:39 Server:TRC ##20 sent ping
2017-Mar-31 16:20:39 Server:TRC ##20 got matching pong
2017-Mar-31 16:20:42 Server:TRC ##20 sent ping
2017-Mar-31 16:20:42 Server:TRC ##20 got matching pong
2017-Mar-31 16:20:43 Server:TRC #5231 accept:    <IP_ADDRESS>
2017-Mar-31 16:20:43 Server:TRC #5231 destroyed: 1 request
2017-Mar-31 16:20:45 Server:TRC ##20 sent ping
2017-Mar-31 16:20:45 Server:TRC ##20 got matching pong
2017-Mar-31 16:20:46 Server:NFO ##19 closing slow client
2017-Mar-31 16:20:46 Server:TRC ##20 read: End of file

"closing slow client" that's a clue

What is too slow? Seems to be a 100 items in the send queue. It faulted on ledger 28695107, which had 127 transactions :-)
https://github.com/ripple/rippled/blob/dbe74dffcb1c3edaaf0bc8a6f6f834fc13358ff8/src/ripple/server/impl/BaseWSPeer.h#L223

"closing slow client" means the write queue filled up. Writing to the socket outperformed sending. We currently impose a limit of 100 queue items before considering the client too slow and disconnecting.

Seems a bit aggressive if the plan is to process 1000 tx/sec :-)

@donovanhide I agree, something ain't right there. The server implementation needs to be redesigned anyway. But in this case i think you are really too slow, it means that the other end is not reading the data fast enough. You should be able to read on your end fast enough to keep the queue empty.

My code has been happily running for over two years, so not sure I want to optimise it because rippled changed its websocket library.

That is the limit of a single Websocket write queue. It's unusual for a queue to get beyond a few items in my experience. I can work with you to figure out why it happened.
@vinniefalco Another possibility is the server upstream bandwidth was momentarily saturated.

If rippled queues more than 100 items at a time, it would cause that problem.

Sounds like it should be a configurable. My code is the only client of that server. I need to add each item of metaData that I receive into my version of the ledger state. I could buffer them all and then process them, but seems like quite a lot of work because the number 100 was hard-coded.

@donovanhide How do you prevent an attack where someone subscribes to a million streams and then reads only one byte at a time per second on the connection?

Here's a typical snapshot of my time budget for each ledger:
Receiving 91.583198ms Bellman: 148.022203ms Signing:  688.565µs Submitting: 16.415657ms

In that situation, you leave the send queue limit to a low value. For private servers, it's not an issue.

Or you put an nginx websocket proxy in front of it and configure the rate limiter :-)

Or you put an nginx websocket proxy in front of it and configure the rate limiter :-)

Oh I like that much better

@donovanhide Can you please try a large queue limit size to see if it eliminates the problem? It might be a good idea to also log the max size the queue grows to.

Just to be clear, a rate-limited nginx websocket proxy is a solution to attack prevention, not my slow transaction stream message reading problem :-)
@miguelportilla Yep, I'll whack it up. If you want to reproduce, you could replay that ledger with a timed sleep between each message read. If the transaction per ledger volume goes up though, it's more likely that others will hit this with their javascript code.

@donovanhide Thank you. I will replay that ledger and reproduce on my end. What does your RPC subscription look like?

@miguelportilla
        "command" : "subscribe",
        "id" : 1,
        "streams" : [ "ledger", "transactions", "server" ]
}```

Actually just reviewed my code (it's been a while...) and seen that I am buffering all received messages in the transaction stream for a ledger before processing them, which suggests that the typical time of around 70ms to receive a typical ledger is not down to what my code is doing, as far as I can see.
Would be interesting to see how long it takes for you to receive a full ledger's worth of transactions. That is, examine TxCount in the ledger message, start timer, receive TxCount transaction messages, stop timer. Ledger 28,696,629 was another biggie :-)

Just to be clear, a rate-limited nginx websocket proxy is a solution to attack prevention, not my slow transaction stream message reading problem :-)

Yes, I get that. I would rather rippled focus on what it does best, implementing RCL, and offload security solutions to other products that specialize in it. I don't think rippled can compete with nginx when it comes to offering versatility for managing network resources (nor would I want it to).

Now it seems stable. My bots lost around 100k XRP...but fine...maybe I should stop this "business" :)

Mmmm...it is not true...it is not stable.
Got 5 disconnections in 6 hours :(

@tuloski Are you using you running rippled? If so, which version and what is it hosted on?

No I'm using Ripple's public servers.

What does your RPC subscription look like?

I'm using Ripple-lib...

@tuloski I would like to figure why you are getting disconnected. Would you please share with me the relevant sections of your JS script so that I may use them to debug on my end? I can be reached at miguel at ripple.com

Well it's Ripple-lib 0.12.6: https://github.com/ripple/ripple-lib/tree/0.12.6

This is what I'm getting:
/home/odroid/node_modules/ripple-lib/node_modules/ws/lib/WebSocket.js:214
else throw new Error('not opened');
^
Error: not opened
at WebSocket.send (/home/odroid/node_modules/ripple-lib/node_modules/ws/lib/WebSocket.js:214:16)
at Server._sendMessage (/home/odroid/node_modules/ripple-lib/dist/npm/server.js:746:14)
The servers I'm connected are: wss://s1.ripple.com:443, wss://s-west.ripple.com:443

@tuloski What error message or code do you receive when you are disconnected?

I don't know...it doesn't report the error.
And I don't know how to modify the code to show me the error...all that js drives me crazy.


merged MONDO:0015522 into MONDO:0018677

note that the diff is very big. This might be a bug from the new protege.

Fixes #2826


Support for Azure Synapse Analytics

https://docs.microsoft.com/en-us/azure/synapse-analytics/

Hi @vijaykiran can you please update if SODA supports Azure Synapse analytics now ?


No accessories showing up

I have the 7.x firmware, which I have set up in the plugin successfully. It authenticates, and it spits out a bunch of info about all my devices. However, it doesn't actually add any accessories to my system. The only things it adds are the 3 power peak sensors if they are enabled in the settings, otherwise it seems to add nothing.
I use the Home Assistant HomeKit integration, and I paired with the bridge for the plugin, as well as the bridge that the plugin created for my Envoy system (so two separate bridges), but it still only shows the power peak sensors and nothing else. Shouldn't I actually be able to get information about my inverters, batteries, power usage, etc?
Thank you for the assistance!

Hello,
I did read that before I submitted the issue. I have filled out all the configuration values offered in the UI, it seems like I'm following the instructions according to the documentation, and the connection is working fine. I guess I don't understand what part of the About the Plugin section you're referring to that I might be misunderstanding.

For some additional detail, I have one Envoy system: an ensemble connected to panels, microinverters, and batteries,
The documentation you linked to says "All devices are detected automatically" from which I inferred that once I set up the Envoy device in the configuration and restarted Homebridge, it would detect the devices connected to the Envoy installation. It does show them in the Homebridge logs, but I just don't understand how to get it to actually create an accessory for the Envoy to access the stats.

The plugin use custom characteristics which not exists and are not supported by Home.app, to see the all data from envoy as accessories please use Controller app or Eve app

You can also get all data using MQTT or RESTful

Oh ok, I don't use iOS, and it sounds like it can't integrate with Home Assistant's HomeKit integration. MQTT would likely work though, I'll keep that in mind. Thank you for the clarification!


x1013 AS TS (Katy) I would like to upload a Excel file to complete the block registration page, to speed up block registration and reduce errors

on block registration page to have option to upload a file
STAN client uploads to Core and Core process the info in the file and send validation notice to Client
Once complete go to registration confirmation page to allow for printing labels and storing samples

@KatyTudor The way block registration currently works is that how ever many work numbers you select, they are all linked to all the block registrations you perform. The excel template I have for this has a work number per row, which is a different conceptual model. How does this need to work?

@KatyTudor Also, there seems to be a comment column. Do you expect Stan to do something with this, or to ignore it?

@khelwood if STAN can just ignore that column please

@khelwood for your Q about work number, I think if we can link it to one worknumber that's fine, if its linked to many at the same time people can manually add them instead

@KatyTudor So the request should only contain one work number?

@khelwood I am getting an error but its doesn't say what the error is:

@KatyTudor Could you email me the file you used that gave you the error please?

@KatyTudor I've updated Stan on UAT and I successfully uploaded the file. It seems to be working OK now.

@khelwood thanks dave that's working nicely now


1266 private vods are still publicly listed

Motivation and Context

To prevent streams marked as "private" from being list anywhere (home page, course page and playlist) for a non course admin user. #1266 should be fixed with this.
(Currently they are listed, but unauthorized visiting of the stream is then blocked by a 403 page)
Description

Changes are done to backend APIs. Private streams of one course are filtered out in the responses, if the user is not admin of that course.
Steps for Testing

I tested using the example database setup, with:

Users:

Stephanie Studi (role: student, not admin of any course)
Anja Admin (role: admin, automatically admin of all courses)

Course "Einführung Brauereiwesen", visibility public, with the following lectures:

VL 1: Was ist Bier? (12:00pm 11.Apr.2022)
VL 2: Wie mache ich Bier? (12:00pm 18.Apr.2022)
VL 3: Rückblick (Sometime in the future)
(Note that VL 2 is more recent than VL 1)

Pre-steps:

Log in as Anja Admin
Edit course "Einführung Brauereiwesen", mark "VL 2: Wie mache ich Bier?" as private
Note that VL 2 is still listed everywhere

Tests:

Log in as Stephanie Studi (or impersonate them in admin panel)
Select the semester of course "Einführung Brauereiwesen" ("Summer 2022" under the example database setup)
Check the homepage:

The "most recent lecture" of "Einführung Brauereiwesen", listed under "My Courses", is dated at 11. Apr. 2022 (VL 2 at 18. Apr. 2022 is ignored)
Under "Recent VODs", VL 1 is listed (VL 2 is ignored)

Check the page for course "Einführung Brauereiwesen": VL 2 is not listed under "VODs"
Watch VL 1, check the playlist: VL 2 is not listed there

Additional tests:
Marking a stream without VoD (currently live, or planned in the future) as private is currently not supported, but can be done by direct edition in the database. If one does so, the private live stream / future lecture is as well then not listed

on the home page in the "live" list
on the home page as "next lecture" of the course
on the course page under "scheduled"

Screenshots

1. Home page
As admin:

As student:

2. Course page
As admin:

As student:

3. Playlist
As admin:

As student:

TODO: test under not-login scenario (#1354)


unit xrmd.service could not be found

This erro occured when I run the test command to start XRMD. My OS is Ubuntu 18.04. Thanks for your replys.

Please do the following investigation:

To check whether there is FPGA devices and driver installed on the system. The xrmd service will not be started if there is no FPGA device presented.
xbutil examine (you may set the XRT env with "source /opt/xilinx/xrt/setup.sh" if not done yet): to check what FPGA device available
To check the error message
dmesg or sudo vi /var/log/syslog: to check more error message by grep "xrmd"


Show all available options on click (As original select2)

Done!

Also works on ENTER and KeyDown


docker man page is misleading about format of commands

The main docker manpage, man docker, makes it look like you can do things like docker-ps instead of docker ps, which is unintentionally misleading.
Given these parts of the manpage:

COMMANDS
    docker-attach(1)
        Attach to a running container

This formatting suggests that I might want to run docker-attach as opposed to docker attach. This doesn't work of course, but it might be more clear to specifically refer to attach as the command, and point out that full documentation for attach is found in the docker-attach(1) manpage.

COMMANDS
    attach
        Attach to a running container.
        See docker-attach(1) for full documentation on the attach command.

Should I change that?

+kind/writing
+docs-only

+kind/writing

+1

#dibs

I want to help do this :)

This one is closeable too then as #12817 has been merged :)

agreed. closing. :)


iTerm  tab/window titles!

Need them.
http://superuser.com/questions/419775/with-bash-iterm2-how-to-name-tabs
I want to automatically have it filled.

Have not needed this in a while. Closing.


upcoming: [M3-7622] - Create Select component Placement Groups

Description 📝
Select Component for the upcoming Placement Groups feature.
Changes  🔄

Introduces a new Select component based off the Autocomplete component.
The affinity_type is appended to the option label.
Utilizes the usePlacementGroupsQuery to populate the data.

Preview 📷

Before
After

Component States 📷

How to test 🧪
Prerequisites
(How to setup test environment)

Enable the following using the Cloud Manager Dev Tools:

Placement Groups feature flag
MSW

Verification steps
(How to verify changes)

Under the Create Linode flow, inspect the new Placement Groups Select component under the Tags Select component.
Inspect that the initial state displays a warning Notice to the user.
Verify that after selecting a region the Notice disappears and the component's label displays the region name.
Verify that if the selected region does not have any Placement Groups, an error message is show to the user.
Verify that if the selected region does have Placement Groups, the user is able to select it from the component menu.

As an Author I have considered 🤔

[ ] 👀 Doing a self review
[ ] ❔ Our contribution guidelines
[ ] 🤏 Splitting feature into small PRs
[ ] ➕ Adding a changeset
[ ] 🧪 Providing/Improving test coverage
[ ] 🔐 Removing all sensitive information from the code and PR description
[ ] 🚩 Using a feature flag to protect the release
[ ] 👣 Providing comprehensive reproduction steps
[ ] 📑 Providing or updating our documentation
[ ] 🕛 Scheduling a pair reviewing session
[ ] 📱 Providing mobile support
[ ] ♿  Providing accessibility support

@carrillo-erik I believe you need a rebase cause things have changed since you first opened this PR


C++ implementation of C data interface (Take 2)

TODO:

[ ] add extension array support

@wesm @emkornfield

To restate a point regarding the offset member at the top level of this discussion: this is not a C++-specific implementation detail. offset is part of the columnar data structure in 5 out of 6 Arrow implementations (since it is required to allow for slicing), Java being the only one that does not provide it.

To restate a point regarding the offset member at the top level of this discussion: this is not a C++-specific implementation detail. offset is part of the columnar data structure in 5 out of 6 Arrow implementations (since it is required to allow for slicing), Java being the only one that does not provide it.

To restate a point regarding the offset member at the top level of this discussion: this is not a C++-specific implementation detail. offset is part of the columnar data structure in 5 out of 6 Arrow implementations (since it is required to allow for slicing), Java being the only one that does not provide it.

I replied on my thoughts to this in the inline discussion.
A couple of key points:

It is important to note that this is not part of the formal specification. It's unfortunate that implementations started using this as it is at odds of the project goal of avoiding zero-serialization on the IPC boundary. I'd argue that the individual implementations should be focused on removing this.
In general, it is overly general to state that this disallows zero-copy slicing. One can absolutely still do zero-copy slicing without the offset field. The only requirement is that slicing happen on a byte boundary (which equates to happening at a multiple of 8 logical values). This seems like a pretty low requirement for most situations where one might need to do slicing that greatly simplifies and improves performance of a large number of processing algorithms.

It is worth pointing out that in the current spec proposal, support for a non-zero offset is optional:

Producers MAY specify that they will only produce 0-offset arrays to
ease implementation of consumer code.
Consumers MAY decide not to support non-0-offset arrays, but they
should document this limitation.

Perhaps another wording would be better?

It is worth pointing out that in the current spec proposal, support for a non-zero offset is optional:

Producers MAY specify that they will only produce 0-offset arrays to
ease implementation of consumer code.
Consumers MAY decide not to support non-0-offset arrays, but they
should document this limitation.

Perhaps another wording would be better?

To clarify, I'm awaiting further feedback from @wesm per my questions above. My preference is to remove the field entirely as I think it starts to create a shadow standard that reaches beyond what the core standard supports.

It's unfortunate that implementations started using this as it is at odds of the project goal of avoiding zero-serialization on the IPC boundary. I'd argue that the individual implementations should be focused on removing this.

I don't think this would be tenable in C++ at least. Having zero-copy slicing does not increase the effective amount of computational work or memory allocation involved. You are choosing between doing the bitmap allocate-and-copy eagerly (when invoking arr->Slice) or lazily (at the IPC boundary, what we currently do). There are plenty of cases where the bitmap allocate-and-copy is never needed, and so to force it eagerly and unconditionally seems wasteful.
There is a separate question which is whether kernel developers should care about computational function evaluation against sliced data with offset that is not a multiple of 8. As I said above, I think it would be fine if libraries established the policy of forcing regularization of sliced bitpacked data (validity bitmaps or Boolean data) prior to function evaluation.

To summarize, I am OK with removing the offset member but I don't think that leaving it does much harm.

To summarize, I am OK with removing the offset member but I don't think that leaving it does much harm.

As I've said elsewhere, I'm very much against this.

Did you guys have a discussion of whether it makes sense to declare these as a packed representation? I've been thinking about reasonable approaches with Java (which is cross platform) and stating that this is packed seems at first glance like it would be cleaner. That being said, it seems like packing declaration still isn't well defined cross platform (at least upon first glance).

Did you guys have a discussion of whether it makes sense to declare these as a packed representation? I've been thinking about reasonable approaches with Java (which is cross platform) and stating that this is packed seems at first glance like it would be cleaner. That being said, it seems like packing declaration still isn't well defined cross platform (at least upon first glance).

Can you elaborate on the benefit you think packing provides?  I'm not sure why it would be cleaner?

Did you guys have a discussion of whether it makes sense to declare these as a packed representation? I've been thinking about reasonable approaches with Java (which is cross platform) and stating that this is packed seems at first glance like it would be cleaner. That being said, it seems like packing declaration still isn't well defined cross platform (at least upon first glance).

Can you elaborate on the benefit you think packing provides? I'm not sure why it would be cleaner?

In a JVM, you don't want to construct a struct in C code. You want to allocate a direct byte buffer and then fill in the information. If you declare things as packed, you have to worry less about the changes in different platforms to generate this chunk of memory. It still doesn't solve endianess but since we already disallow big endian in the java library that isn't a major concern. (Note that this is all ignoring the release invocation, which I've thought less about.)

As I've said elsewhere, I'm very much against this.

As I commented above, the slicing use case is mostly motivated by non-SQL workloads (e.g. time series analytics). We can remove the offset and take the "wait and see" approach but my prediction will be that it will show up as an issue possibly necessitating an interface v2 in the future. I can live with that

As a way to break the impasse I suggest the following:

Remove offset member from specification
ExportArray function should materialize sliced bitpacked data. This means this function need to be able to fail (since it can allocate memory / is not guaranteed to be zero copy)

I plan to start a discussion on the mailing list to see if anyone wants to share information about their time series / non-SQL workloads. I represent some of these by proxy (since Ursa Labs is sponsored partly by some large financial institutions) but it would be good if others would share their use cases directly.

Superseded by PR #6483


Do we need TripKey in Observations

The relation between the tables is:

observation -> position -> trip

Meaning that observations have a PosKey and positions have a TripKey. @Osanna123 you mentioned that it is also necessary to add TripKey to observations (which I have done), but can you explain why this is necessary, as it can lead to inconsistencies:
TRIP A
TRIP B
POS X: TRIP A
POS Y: TRIP B
OBS 1: POS X, TRIP A
OBS 1: POS X, TRIP B <- incorrect direct link to TRIP

TripKey on the Observations level would not be used in the database , but could be used for verification in the submissions.
@Osanna123 and @cmspinto to discuss internally and agree if tripkey is needed in Observations before the next ESAS meeting.

removed


feat(gateway): Add admin session authentication manager

closes #4128
Motivation
Currently, authentication to the getaway admin endpoints is made through a password sent in clear text, which is a security concern.
This PR attempts to fix this issue by adding an Authentication Manager that distributes challenge codes that must be signed before users can request a JWT that allows them to authenticate to the gateway admin endpoints.
Because of backward compatibility, the password check is not deleted but used as a fallback only if a JWT is absent in the request.
This PR adds three additional endpoints:

/auth/challenge generates a temporal challenge code
/auth/sign once the challenge code is generated, this endpoint signs the challenge code
/auth/session Once the challenge code is signed, it is possible to request a JWT token.

How to test it:

run just mprocs
check which gateway address has to be used  running for example gateway-lnd info
check which is the federation ID that has to be used with some commands such as balance

Be aware that the process of requesting a challenge code, signing it, and requesting a JWT has to be done in less than one minute because of the expiration time.
the JWT has an expiration time of 30 minutes
gateway-cli --address=http://<IP_ADDRESS>:13446/v1 get-challenge-auth
gateway-cli --address=http://<IP_ADDRESS>:13446/v1 sign-challenge-auth --challenge-auth="02f0219bdc2ea9b4524a78f0a390863e16967940e9048171994b73d81305d76d7d-http://<IP_ADDRESS>:13446/v1-1728495691"
gateway-cli --address=http://<IP_ADDRESS>:13446/v1 session-auth --challenge="02f0219bdc2ea9b4524a78f0a390863e16967940e9048171994b73d81305d76d7d-http://<IP_ADDRESS>:13446/v1-1728495691" --response="3acaa8ac174da093ff43eaab77e7ff916c202c8d744c2ec41df42f347b47ab03f162bb8c2a092008e804c90f9251d4553b95d8e2305d00e14012e19a25da6cb5"
gateway-cli --address=http://<IP_ADDRESS>:13446/v1 --rpcjwt="eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6ImlkLTY1MDQ5MDMxMDUzNzQxMzYzNTUiLCJleHAiOjE3Mjg0OTU2OTF9.mvBJcOLQqIZy5J8IDSr6SE9g9wSD0MiXbV9o6J9-30c" balance

Just some comments from a quick skim. Feels like work in progress, will mark it as draft.

Thanks, @elsirion for the initial review, I addressed the comments and the PR will be ready for additional reviews.

@elsirion review

tested this and works as expected based on PR example steps

I also tested that jwt session keys still work after generating a 2nd one. I generated 2 session keys and could use either of them to hit the balance

the session keys just expire based on time, do we want to keep it to just a single one active ever?

the session keys just expire based on time, do we want to keep it to just a single one active ever?

I think its fine to have two, maybe you want to access it from multiple devices. Can we rebase and run the CI?

there are some errors on the Build on linux CI task that I am fixing now.

closing this PR for a simple version #6535

close this PR for #6535


Add Node creation with a URL string

Change Summary
Closes https://github.com/typesense/typesense-python/issues/43.
I'm not sure how to verify changes in this PR, there don't seem to be any tests in the project to run. I'm completely inexperienced with Python, so please take a good look at the code, and sorry if it doesn't meet the standards, I tried my best.
PR Checklist

[x] I have read and signed the Contributor License Agreement.

Thank you, I will be reviewing the PR this week!


(inkscape) Create start menu entries for all users

Make start menu entries visible for all users.
Workaround for upstream bug https://gitlab.com/inkscape/inkscape/-/issues/1618
Description
Apply the workaround suggested in the upstream bug: Pass ALLUSERS=1 to the MSI installer.
Then, the start menu entries are visible for all users and not just for the one user that runs choco.
Motivation and Context
Fixes #2328
How Has this Been Tested?
Need help. It's too much effort for me to set all this test stuff up for a tiny change.
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Migrated package (a package has been migrated from another repository)

Checklist:

[x] My code follows the code style of this repository.
[ ] My change requires a change to documentation (this usually means the notes in the description of a package).
[ ] I have updated the documentation accordingly (this usually means the notes in the description of a package).
[ ] I have updated the package description and it is less than 4000 characters.
[x] All files are up to date with the latest Contributing Guidelines
[ ] The added/modified package passed install/uninstall in the chocolatey test environment.
[x] The changes only affect a single package (not including meta package).

:white_check_mark: Package verification completed without issues. PR is now pending human review

I tested it locally:
Download the MSI to ...../inkscape/tools within chocolatey-packages
In Admin-Powershell, run
cd ......./inkscape/tools
choco pack
choco install --source .

And it works as expected. Is this enough?

@mgmax Unfortunately, testing on in your own local environment or a custom VM is not enough for changes that affect installs/upgrades or uninstalls.
Any changes that affect those must be tested in the chocolatey-test-environment, no matter how insignificant you believe the change is.
The PR will not be merged until it has been tested in this environment, and if you are waiting on us to do that test, that may take weeks, or even months before we have the time available to do such tests.

@AdmiringWorm I tested it successfully with the official test environment.
Additionally, I also tested the case of first installing the current package version and then force-installing my modified version. This also works correctly.
(
As a side note, it was quite bumpy to get the test environment running, mainly due to upstream issues - just to give you an impression:

more disk space required than stated in the readme (will open a separate PR here)
VirtualBox Windows WinRM not working out of the box on Debian Linux
VirtualBox nested virtualization does not work (Crash / "Guru Meditation" when starting VirtualBox within VirtualBox), therefore I really needed a physical Windows host
weird vagrant WinRM errors "The device is not ready" that are actually due to timeouts (will open a separate issue with vagrant)
vagrant boot timeout on slow hardware (will open a separate PR here)
sporadic vagrant failures https://github.com/hashicorp/vagrant/issues/9023

)
Happy to get this merged, thanks for your work :-)

The PR should be ready to review. Please let me know if there is anything I can do to get it merged.

@mgmax Given this comment, it might be worthwhile just holding off on a fix from the author.
I'm concerned that we fix it now, then the author fixes it, then we have to remove our fix (or our fix becomes redundant and confusing for future us's.

Thanks for your reply. I would expect that it takes roughly one year for the fix to land. (CMake release --> MSYS package --> Inkscape build tooling --> next inkscape release)
The workaround does no harm even after the fix has landed.
Is this one year worth the price of a workaround here? I would say yes, as the current bug makes Inkscape on chocolatey half-broken. You can't see Inkscape in the start menu (except if you are using the admin account that ran choco), so users will complain that "Inkscape is missing" and admins will have to use something else than choco.
If you (or whoever is to decide) say no, I nevertheless accept the decision. Then please close this PR.

@pauby I am with @mgmax on this. Changing the passed in silent arguments to explicitly specify admin/all user mode to be used very rarely causes problems.
The only time I have seen this cause any problems in the past is if the developers of the installer has decided to use hard-coded values (usually related to installation Paths).
In general, we should probably start enforcing all CMAKE/WiX installers to always specify the ALLUSERS=1 parameter for consistency’s sake (but that is a different problem).
We can have a discussion regarding this next week when everyone is back if you'd like.

I'm just coming back to this after the previous comment notification.

The workaround does no harm even after the fix has landed. Is this one year worth the price of a workaround here?

If that is the timescale for the author to fix it then I'd agree we should fix it here.

@mgmax your changes have been merged. Thanks for your contribution 👍
I do apologize for the long delay in getting this merged. I haven't pushed up a fix release for inkscape, as such this change won't go out until the software has a new version available.

Thanks for merging. Coincidentally, there is already a newer Inkscape version available, which is an important bugfix release. I created a separate issue for that:
https://github.com/chocolatey-community/chocolatey-packages/issues/2392


Add an Event parameter to PubSubWorkerThread and run_in_thread so

that the PubSubWorkerThread can be reliably stopped.
The existing mechanism is left in place so that there is no API change.
Pull Request check-list
Please make sure to review and check all of these items:

[x] Does $ python setup.py test pass with this change (including linting)?
[ ] Does travis tests pass with this change (enable it first in your forked repo and wait for the travis build to finish)?
[x] Is the new or changed code fully tested?
[ ] Is a documentation update included (if this change modifies existing APIs, or introduces new ones)?

NOTE: these things are not required to open a PR and can be done
afterwards / while the PR is open.
Description of change
Please let me know what you think of the change. If I should make any other adjustments or tests. I don't mind to rework the Class and API further, but did not want introduce any significant changes.
#1194

Codecov Report

Merging #1195 into master will decrease coverage by 0.04%.
The diff coverage is 33.33%.

@@            Coverage Diff             @@
##           master    #1195      +/-   ##
==========================================
- Coverage   92.39%   92.34%   -0.05%
==========================================
  Files          20       20
  Lines        5669     5672       +3
==========================================
  Hits         5238     5238
- Misses        431      434       +3

Impacted Files
Coverage Δ

redis/client.py
85.54% <33.33%> (-0.16%)
:arrow_down:

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 088c0ab...883d5a8. Read the comment docs.

Thanks!


Initial alter table support for the JSON API

Refs:

#2101

TODO:

[x] Treat initial table creation as alter: true for /-/create with rows
[x] Allow "alter": true for subsequent calls to /-/create if user has alter-table permission
[ ] Document the above
[ ] "alter": true support for /db/table/-/insert
[ ] "alter": true support for /db/table/-/upsert
[ ] "alter": true support for /db/table/rowid/-/update

📚 Documentation preview 📚: https://datasette--2261.org.readthedocs.build/en/2261/

Documentation:

https://datasette--2261.org.readthedocs.build/en/2261/authentication.html#alter-table - the permission
https://datasette--2261.org.readthedocs.build/en/2261/events.html#datasette.events.AlterTableEvent - the event


Added Disney material based on the disney BRDF from Siggraph 2012

Adds implementation for #91 Principled Shader.
For my Masterthesis I needed to implement the Disney BRDF.
I chose LuxCoreRenderer to do that and to thank you I thought commiting my implementation could help.
In the moment it is only implemented for CPU rendering and I think you could fasten the computation for sampling by manualy reduce the fraction of the evaluation and the pdf.
I have attached some results rendered with pathtracing
Clearcoat with rough metallic

Cloth using Sheen

Glossy

Matte

Mirror

Subsurface approximation

Wow, thanks ! If you don't plan to write the OpenCL code, I can do it, just tell me.

@Dade916 I have never implemented something for OpenCL so it would be nice if you could handle this. You can ask me if there is something odd with my code.
@patrickawalz & @Theverat I openend a new pull request with the changes.

Awesome, thanks a lot!


[bug] Impossible to compile to x86

Describe the bug
Even when setting architecture to x86 in CMakePresets.json, /machine:x64 is passed to lld-link, causing linking to fail.
After trying various combinations of environment/cache variables and configuration options I've been unable to force the linker to work in x86 mode.
Additional context
https://gitlab.kitware.com/cmake/cmake/-/issues/16259

Fixed in 454c3d208e3a9a3620b1a451235185c47ad5d7ed


Move Sign Out button into Settings menu

cc: @shawnborton
Details
Removes the dedicated Sign Out button and instead includes Sign Out as an option in the Settings menu.
Fixed Issues

Fixes https://github.com/Expensify/Expensify.cash/issues/2149#issuecomment-814472586
Tests

Log into an account on E.cash
Navigate to Settings by clicking on your user avatar
Click through the menu items in the Settings page.
Confirm the first four (Profile, Preferences, Change Password, and Payments) take you to their respective settings subpages.
Confirm the fifth button Sign Out signs you out.

QA Steps

Repeat Tests steps.

Tested On

[x] Web
[x] Mobile Web
[x] Desktop
[x] iOS
[x] Android

Screenshots
Web
https://user-images.githubusercontent.com/16747822/116935466-3f3d2b80-ac1b-11eb-9dbe-71d24a195aeb.mov
Mobile Web
https://user-images.githubusercontent.com/16747822/116935551-58de7300-ac1b-11eb-9bd1-6fbb639d5983.mov
Desktop
https://user-images.githubusercontent.com/16747822/116935579-6267db00-ac1b-11eb-8705-d27b7cdddf3c.mov
iOS
https://user-images.githubusercontent.com/16747822/116936109-30a34400-ac1c-11eb-8c1f-a52af770d2cf.mov
Android
https://user-images.githubusercontent.com/16747822/116936192-53cdf380-ac1c-11eb-9a9d-a2bd1e9dab9c.mov

React State Error on Android on current main

Just a note that I'm also experiencing that same react error on main currently for both Android and iOS but here's a video on Android
https://user-images.githubusercontent.com/16747822/116936186-503a6c80-ac1c-11eb-95a3-b22babbbebd5.mov

🚀 Deployed to staging in version: 1.0.36-1🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


github/workflows: fix false positive yamllint message

The format of github confuses yamllint, so we'll ignore the message here

also I set pre-commit to be as strict as GH so we see it locally


Not working in server but in local running perfect

I can't run in server, but the script running perfectly in my computer.
What I can do?
THX

maybe he's blacklisted now?
because in March it worked correctly.

yeah, NBA.com seems to blacklist access from servers hosted by cloud providers.


Convert Publisher PHP trait to class

Feature Description
The Publisher trait is used in 5 classes. Converting this to a class should be pretty simple. See https://github.com/google/web-stories-wp/issues/7844 for more detail.
Alternatives Considered

Additional Context

Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance Criteria

Implementation Brief

Let's also remove any get_publisher_logo_placeholder() usage while at it.

Let's also remove any get_publisher_logo_placeholder() usage while at it.

Seems like it is being used in 3 places 😕 . I thought we had stopped using it..

Ah, you're right.
It's used in get_publisher_logo() for a filter, but it can be removed from that filter entirely.
It's also used in the AMP sanitization, but let's keep it there for the moment. This is for sanitizing older stories with the wrong logo.
So let's only remove it from the web_stories_publisher_logo filter for now

Made obsolete by #8946


The system cannot find the path specified.

Running this on Windows with the session-key I get the error message:
"The system cannot find the path specified."
Running without the session-key I get instructions on how to provide the session-key.

What is the exact command that you are running? Are you using a configuration file?
Usually this kind of error has the form "open : The system cannot find the path specified." Do you get any other output?
Are you familiar with Go or are you using the executable from the release?

The exact command I ran is:
.\aocdl-windows\aocdl.exe -year 2021 -day 13 -force
I used a configuration file to specify the session-key.
For the above command, the only output was:
"The system cannot find the path specified."
FYI, I was able to run 'curl' on Cygwin to download the AoC input, as specified here:
https://www.reddit.com/r/adventofcode/comments/a2vonl/how_to_download_inputs_with_a_script/

As far as I know aocdl cannot produce this error message without additional information (such as open <filename>:). However, Windows will give you that error message if you forget the leading dot or misspell the folder name of the executable, e.g. .\aocdl-window\aocdl.exe ....
Can you reproduce this issue while making sure that the path to the executable is correct?

Image of command + output

Turns out I was wrong. I have made a new release that hopefully fixes this issue (I am still not able to reproduce it 100%). Would you please be so kind to test it?

I am now able to reproduce the exact error message and can confirm that 1.0.1 fixes it, so I will close this issue now. Thank you very much for reporting this problem to me!


Patiently waiting for search_quotes

I have download the list of all stocks on my countries exchange in two separate files ( two separate exchanges) from investing.com screener page by clicking on download results.
The downloaded csv contains the name and symbol but not the investing_id required for downloading the historical prices.
My idea is to loop through all name or symbol calling search_quotes to retrieve the investing_id from the search results and then store it some place safe.
Then I want to loop through the investing_id list to retrieve historical data.
Therefore patient.

Hi, @hamzaahmedzia1 that feature is currently under development, once I release 0.2.0 I'll prepare the release of 0.3.0 including the function to search assets in Investing.com 🤗

Thank you so much @alvarobartt ; just love it. Your updated documentation makes my day.


Allow non-function format for @record definitions.

The current way of defining @record types is really annoyingly verbose and non-intuitive.
/** @record */
function PNum() {};
/** @type {number} */
PNum.prototype.p;

The version above makes sense in terms of old-style class declarations when the fields are all methods,
but not so much when just defining a data holding type.
Why is PNum a function, when we're not defining a class, just a data holder?
Why do I have to keep repeating PNum.prototype. for every single field?
I'd like to propose we support this alternative syntax.
/** @record */
const PNum = {};
/** @type {number} */
PNum.p;

I know it doesn't save a lot in terms of typing, but it makes a lot more sense to me as a developer.

I like
/** @interface */
class PNum {
  /** @return {number} */
  p() {}
}

but of course that only works for methods, not non-function properties, at least until https://tc39.github.io/proposal-class-public-fields/ lands.

I think the original idea was that @record would replace @interface, and people can implement @record type so it did make sense for them to look like interfaces. Also using the same syntax as @interface made the implementation easier, I think.
With ES6 shorthand object literal syntax we can simplify it a bit more into:
/** @record */
const PNum = {
  /** number */ p;
};

In this issue I'm concerned with objects that just have a bunch of data fields and no methods.
I really wanted to do something more like this, but couldn't see a way to avoid assigning a meaningless value to satisfy syntax.
/** @record */
const PNum = {
  // This would seem to imply a default value, which isn't really true.
  /** @type {number} */
  p: 0,
  /** @type {string} */
  name: '',
  /** @type {string} */
  id: '',
  // This is a problem. I don't want to create a bogus MyFoo to satisfy the type info.
  /** @type {!MyFoo} */
  foo: undefined,
};

ES6 shorthand doesn't help us here. It requires a corresponding variable to exist.

@brad4d Yeah, looks like your original proposal is the most reasonable one.

Mixins rarely use prototypes and are ideal candidates for @record. Polymer Behaviors (see #2119) would be a classic example. It would be MUCH easier if it would work the way @brad4d listed.

Another possibility would be to add an @property annotation similar to the one in non-closure-compiler JSDoc.
http://usejsdoc.org/tags-property.html
Here's how it might look for us.
/**
 * @record
 * @property {string}  name
 * @property {?Date}  birthdate
 * @property {?string}  hairColor A hex color string.
 */
var Person = {};

I suspect we'd need a pass to create AST nodes for the properties.

This method currently works at least for some cases, but I believe it has a problem I'm currently unable to recall.
/** @record */
class Person {
  constructor() {
    /** @type {string} */
    this.name;
    /** @type {?Date} */
    this.birthdate;
    /**
     * A hex color string.
     * @type {?string}
     */
    this.hairColor;
  }
}

Suppose we allow @record definitions using object literals with these limitations enforced by the compiler?

Field values must be specified as undefined.
Method values must have empty function bodies.

/** @record */
const Person = {
  /** @type {string} */
  name: undefined,

  /** @type {?Date} */
  birthdate: undefined,

  /**
   * A hex color string.
   * @type {?string}
   */
  hairColor: undefined,

  /**
   * @return {string}
   */
  getDescription() {}
};

This seems like the clearest way.
Anyone object to it?

What's the reason @record properties can't have implementations? I've got lots of cases where I'd like to use an object literal as a mixin. In this case it would be both the @record definition and the default implementation.

We don't want to mix up defining an interface, which is basically what @record is supposed to do, with defining a default implementation. It's clearer to define an @record and then separately define a class or object literal that implements it. If they're mixed together, then client code will end up depending on a specific implementation, which can prove problematic later.

Can that be a lint rule then? It's a lot of code duplication to maintain the type information separate from the implementation.
Specifically for Polymer Behaviors, it would have drastically improved the compiler type checking. It also comes up in a lot of other code like so:
/** @record */
var Foo = {
    bar: 'bar',
    /** @return {boolean} */
    hasBar: function() { return true; }
};

/**
 * @implements {Foo}
 * @constructor
 */
function Bar() {}
Bar.prototype = Object.create(Baz.prototype);
Object.assign(Bar.prototype, Foo);

Without this, you are stuck writing code like so:
/** @record */
var Foo = {
    /** @type {string} */
    bar: undefined,
    /** @return {boolean} */
    hasBar: function() {}
};

/** @implements {Foo} */
var fooImplementation = {
    bar: 'bar',
    hasBar: function() { return true; }
};

/**
 * @implements {Foo}
 * @constructor
 */
function Bar() {}
Bar.prototype = Object.create(Baz.prototype);
Object.assign(Bar.prototype, fooImplementation);

The code duplication becomes much greater for non-trivial cases.

@ChadKillingsworth
Are you aware of current usage of @record that defines an implementation?

We currently generate a warning if you try to define a non-empty member function on an @record,
except in the case of using assignment in a class constructor. I believe that omission is actually a bug.
https://closure-compiler-debugger.appspot.com/#input0%3D%252F**%2520%2540record%2520*%252F%250Aclass%2520MyRecord%2520%257B%250A%2520%2520constructor()%2520%257B%250A%2520%2520%2520%2520%252F**%2520%2540type%2520%257Bstring%257D%2520*%252F%250A%2520%2520%2520%2520this.something%2520%253D%2520'hello'%253B%250A%2520%2520%257D%250A%250A%2520%2520%252F**%2520%2540return%2520%257Bstring%257D%2520*%252F%250A%2520%2520getRecordId()%2520%257B%2520return%2520'foo'%253B%2520%257D%250A%257D%250A%250A%252F**%2520%2540record%2520*%252F%250Aconst%2520MyOldRecord%2520%253D%2520function()%2520%257B%257D%253B%250A%252F**%2520%2540return%2520%257Bstring%257D%2520*%252F%250AMyOldRecord.prototype.getRecordId%2520%253D%2520function()%2520%257B%2520return%2520'foo'%2520%257D%253B%250A%252F**%2520%2540type%2520%257Bstring%257D%2520*%252F%250AMyOldRecord.prototype.something%2520%253D%2520'hello'%253B%26input1%26conformanceConfig%26externs%26refasterjs-template%26includeDefaultExterns%3D1%26CHECK_SYMBOLS%3D1%26CHECK_TYPES%3D1%26CLOSURE_PASS%3D1%26MISSING_PROPERTIES%3D1%26PRESERVE_TYPE_ANNOTATIONS%3D1%26PRETTY_PRINT%3D1%26TRANSPILE%3D1

If you don't assign values, this seems to work as expected:
https://closure-compiler-debugger.appspot.com/#input0%3D%252F**%2520%2540record%2520*%252F%250Aclass%2520MyRecord%2520%257B%250A%2520%2520constructor()%2520%257B%250A%2520%2520%2520%2520%252F**%2520%2540type%2520%257Bstring%257D%2520*%252F%250A%2520%2520%2520%2520this.something%253B%250A%2520%2520%257D%250A%250A%2520%2520%252F**%2520%2540return%2520%257Bstring%257D%2520*%252F%250A%2520%2520getRecordId()%2520%257B%257D%250A%257D%250A%250A%252F**%2520%2540record%2520*%252F%250Aconst%2520MyOldRecord%2520%253D%2520function()%2520%257B%257D%253B%250A%252F**%2520%2540return%2520%257Bstring%257D%2520*%252F%250AMyOldRecord.prototype.getRecordId%2520%253D%2520function()%2520%257B%257D%253B%250A%252F**%2520%2540type%2520%257Bstring%257D%2520*%252F%250AMyOldRecord.prototype.something%253B%26input1%26conformanceConfig%26externs%26refasterjs-template%26includeDefaultExterns%3D1%26CHECK_SYMBOLS%3D1%26CHECK_TYPES%3D1%26CLOSURE_PASS%3D1%26MISSING_PROPERTIES%3D1%26PRESERVE_TYPE_ANNOTATIONS%3D1%26PRETTY_PRINT%3D1%26TRANSPILE%3D1
So I don't think there is anything to do here?

@brad4d I have several code bases which work around the lack of support for this. However with ES6, I'd rather spend time fixing #2106.

Ok, then. I'm closing this with this conclusion.
For now, we officially support this method for defining data-only @record types.
/** @record */
class Person {
  constructor() {
    /** @type {string} */
    this.name;
    /** @type {?Date} */
    this.birthdate;
    /**
     * A hex color string.
     * @type {?string}
     */
    this.hairColor;
  }
}

We will revisit this when / if property definitions are added to the class syntax in the ES spec.


Update id's in the manifest file to use the protocol document

Now that https://github.com/solid/specification/pull/316 has been merged, we can use the id's from the protocol document itself, and thus delete solid-protocol-spec.ttl. This commit should do that, but it doesn't yet pull in the protocol document when running the tests. I hope you can help with that, @edwardsph .

We just need to confirm that if we extract the RDF from the spec, it contains the same as was in the temporary spec file. Then we would just use the spec document in place of it by adding it as a source for the CTH. This can be on the command line but is normally in the YAML file e.g. https://github.com/solid/conformance-test-harness/blob/main/src/main/docker/application.yaml.
sources:
  - /data/protocol/solid-protocol-test-manifest.ttl

would become
sources:
  - https://solidproject.org/TR/protocol

This needs confirming.

Alright, I'll try it out! I need to update my run.sh too, I suppose?

Sounds right but there may be issues with the fact that there are types missing from the spec. Originally we had <protocol> a spec:Specification but it now uses doap:Specification. Also each requirement was expected to have <#req>  a spec:NormativeRequirement and that is not present. I will need to check the code to see how important these are and perhaps update CTH.

OK! I ran it, and it seems to have worked! :-) Yes,  vocabulary reuse is a good thing, so we should go with the doap:Specification.

This is good to go, isn't it? We should be able to delete solid-protocol-spec.ttl now? I'm not sure how to resolve the conflict in run.sh, though.


Example config json from help has typos

Where? When user has no .ecli.json available?

indeed, there are some small typos that make it an invalid json.


Unexpected indenting enforcement on multiline rules

In one of our projects we have the following Sass for hi-dpi images:
//Image Manangement
@mixin hidpi-background-image($filename, $background-size: 'mixed', $extension: png) {
  background-image: url('../images/#{$filename}.#{$extension}');
  @if ($background-size != 'mixed') {
    background-size: $background-size;
  }
  @media (min--moz-device-pixel-ratio: 1.3),
    (-o-min-device-pixel-ratio: 2.6/2),
    (-webkit-min-device-pixel-ratio: 1.3),
    (min-device-pixel-ratio: 1.3),
    (min-resolution: 1.3dppx) {
      background-image: url('../images/#{$filename}@2x.#{$extension}');
    }
}

<EMAIL_ADDRESS>(via gulp-sass-lint) throws the following warnings:
frontend/static-src/styles/_theme-helpers.scss
  61:11  warning  Vendor prefixes should not be used  no-vendor-prefixes
  62:3   warning  Indentation of 2, expected 0        indentation
  63:3   warning  Indentation of 2, expected -2       indentation
  63:4   warning  Vendor prefixes should not be used  no-vendor-prefixes
  64:3   warning  Indentation of 2, expected -4       indentation
  65:3   warning  Indentation of 2, expected -6       indentation
  66:5   warning  Indentation of 4, expected -4       indentation

✖ 7 problems (0 errors, 7 warnings)

Not sure why it's reporting an expected indentation with negative values, or how I could improve my indenting/formatting...
Is there a way to disable specific rules (like indentation and no-vendor-prefixes) for specific lines of a file while keeping it enabled elsewhere?

Yep that's sounding hella funky and bug-like. Disabling rules on a per codeblock basis would be #70, but that's not merged just yet.

Hi @pdehaan thanks for the report. As @BPScott that is a hella funky bug going on there. Disabling linters on the fly is currently being worked on and hopefully won't be too far away, though it's obviously going to require a lot of testing still.
As for the indentation rule, I think I can probably take a guess at why it's doing what it's doing there. That whole rule is due for a rewrite as soon as we can update to the latest version of the AST we're using but it's currently not stable enough for us. I'll look into it though to see if there's anything we can do right now.

Awesome, thanks guys.

Did y'all have a temporary solution for this indentation issue? I'm facing the same thing and wondering if I just have to abandon the tool. I'll also take a look at #70 and see if I can help.

Indentation is still in need of a little overhaul, I intend to get it sorted soon it's just time at the moment. The reason it's been left for so long is due to the big AST update we released in 1.6 which drastically changed things. Now that that is out of the way I've been working on updating this rule a bit but nothing concrete yet unfortunately, soon though.
Also #70 is already underway you can follow it / help out in #677

In case it helps reproduce this issue, I've found that it only occurs for me in @media queries that include a comma (sass-lint 1.7.0). So it happens here:
/* Produces:
  1010:5  warning  Indentation of 4, expected 0  indentation
  1011:9  warning  Indentation of 8, expected 4  indentation
 */
@media (max-width: 800px), (max-height: 600px) {
    #unit {
        margin: 16px;
    }
}

But not here:
@media (max-width: 800px) {
    #unit {
        margin: 16px;
    }
}
@media (max-height: 600px) {
    #unit {
        margin: 16px;
    }
}

I've found this to be consistent across several rules. Additional commas in the media query seem to further decrease the indentation that sass-lint expects.

@IceCreamYou Thanks for this, can confirm that this will be fixed with the updates to the indentation rule scheduled to drop in our 1.8 release


Hook into Discourse I18n

Instead of hard coding string values (such as 'Send', and the placeholder message suggested in #9), we should be hooking into Discourse's client-side I18n so the strings can be translated.

This has been started in #18

Closed with #19


fix: add correct return for create deployment action

:tada: This PR is included in version 1.94.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


✨ Add support for Linux using *.desktop entries

Codecov Report

Merging #6 (3153ba3) into master (2d362b9) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##            master        #6   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines           29        51   +22
=========================================
+ Hits            29        51   +22

Impacted Files
Coverage Δ

browsers/__init__.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


Add support and tests for pyarrow 6.0

The latest pyarrow version has been released. I will follow the approach I took in #318 to prepare turbodbc for the new version.

@alippai @xhochy hm for some reason this failed due to arrow-cpp. I don't see any direct reference to arrow-cpp in this library, so perhaps it is a conda feedstock issue?
name: turbodbc
channels:
  - conda-forge
dependencies:
  - python=3.9
  - pyarrow=6.0.1
  - turbodbc=4.3.0

Result:
Encountered problems while solving:
  - package turbodbc-4.3.0-py39h511d044_0 requires arrow-cpp >=3.0.0,<<IP_ADDRESS>a0, but none of the providers can be installed

You will need to wait for the bot to reissue the PR at https://github.com/conda-forge/turbodbc-feedstock/pull/59, should be there in 3-4h and then we can merge builds for arrow-cpp=6

Sure, thanks for the quick response!

@ldacey now https://github.com/conda-forge/turbodbc-feedstock/pull/61 is ready. When it's merged to master the deploy will start and the release will be available shortly.

@ldacey https://anaconda.org/conda-forge/turbodbc 4.3.0 is available. Thanks @xhochy for the quick releases!

Nice, thanks a lot. I was able to install 4.3.0 with the latest pyarrow version.


bug: when authors missing frontsite series details page crash

When we are trying to access series there is a stacktrace that should be handled about authors.
Find a series record from api https://<IP_ADDRESS>:5000/api/series' and visit its details page on the front site https://localhost:3000/literature/{series_pid}` you will see something like the following.
TypeError: Cannot read property 'slice' of undefined
DocumentAuthors.render

react-invenio-app-ils/dist/cjs/index.js:15095

  15092 | var displayedAuthors = authors;
  15093 |
  15094 | if (!isExpanded) {
> 15095 |   displayedAuthors = authors.slice(0, limit);
        | ^  15096 | }
  15097 |
  15098 | var isShowingAllAuthors = displayedAuthors.length === authors.length;

hint: this was lately fixed for the document details page

hint: this was lately fixed for the document details page

Let me note to pay extra attention to series not just documents.

Not able to reproduce it, currently if you visit the details page of a series (https://localhost:3000/series/{series_pid}) it works correctly


BOSH cli show raw json data from api calls

currently with the bosh cli it does not seem possible to just retrieve the raw json output from the calls it is making to the bosh director. this makes it very hard to parse the data in scripts etc. Would  it make sense to add an option to output the raw json data from the api. Another possibility would be to add a bosh curl command similar to the cf curl command in the cloudfoundry cli that allows for making direct api call via the cli and leverages the cli's UAA authentication.
if something like this already exists please let me know.

We recently removed the --raw flag (it was broken). Can you describe a bit more about how you're using the raw output in your scripts? Perhaps we can find an alternative.

Oops, I misunderstood. We are currently working towards a new CLI written in go which is refactoring quite a few things. One of the new features is a --json flag which renders output in a script-friendly format. You might want to check out the work happening there (https://github.com/cloudfoundry/bosh-cli) and see if --json would be useful to you. The repository is still under active development and not yet stable, so things may end up changing (including the JSON output format) but it can at least give you an idea about where it's heading.
Another option may be for you to use the director library from that repository in your own go scripts - you can make the API calls directly and work with the responses in whatever way works best.
Do you think either of those will help in your automation needs?

@dpb587 that is exactly what I am looking for, thank you for the information. I will keep an eye on the new cli.


Site Redesign

Site Redesign
Hello hello! I worked with @EmmaDawsonDev to redesign the site to more align with what she was looking for. This will be an issue outlining some of the details for this redesign. Below, you'll find a screenshot of the design.
Light Mode

Background: #FFFFFF
Text: #1C2541
Secondary (borders, nav link hover backgrounds): #28968C
Dark Mode

Background: #161E35
Text: #FFFFFF
Secondary (borders, nav link hover backgrounds): #53FDEE
Other Styling
All text will be in Noto Sans.
Headings will be in the font weight BOLD.
Navigation links will be in the font weight MEDIUM.
Body will have normal font weight.
Heading sizes will need to be clarified by @EmmaDawsonDev.
Body text will be 1REM.

i want to work on this

@LadyBluenotes did you want assigning to this? I forgot to ask you

@EmmaDawsonDev
It may be a good idea to figure out the best way to break this down into more manageable chunks - I think it is a massive undertaking for one individual to take on, additionally, it could give some other people the chance to try out open source coding work.
What do you think?

I agree, I will look at it tomorrow and plan how to do it without breaking things 😊

@LadyBluenotes can you send me the logo.png file

@DIWAKARKASHYAP I'm actually going to redo the logo so the one in the image isn't quite right

@EmmaDawsonDev ok , i leave the logo part

@EmmaDawsonDev where i show this

@DIWAKARKASHYAP it will be a heading within the main part of the page.

@LadyBluenotes you mean this ?

I added a few of the tasks for this as separate issues, like updating the font and moving the header. I will continue to break them down into smaller issues so please ask to be assigned to anything you want to work on in the relevant issue as that way it's easier to keep track of who is doing what.

@EmmaDawsonDev
OK , its good , can i raise the issue ?

@EmmaDawsonDev
Can I raise some issue regarding this , or you gonna create all ?

@DIWAKARKASHYAP not to speak for Emma, but I imagine she will raise the appropriate issues for the site redesign, for which you can request to be assigned to the ones that are available.
Typically issues are used to rectify any errors with the site or information in the pages.

Thanks Sarah!
@DIWAKARKASHYAP I think since there's quite a few things to keep track of it's best if I post all the issues related to the redesign. That way I can make sure nothing breaks and things can be changed incrementally. Feel free to ask to be assigned to any that you'd like to work on.

@EmmaDawsonDev are you have any update ?

@DIWAKARKASHYAP If you look within issues, you will find the issues relevant to the redesign.


Aptiv - Instead of the Ineu city, the message "Ineu-Arad is not a city in Romania" is written

ENVIRONMENT: production
URL: https://scrapers.peviitor.ro/src/aptiv/index.html
Browser: Chrome
Device: Desktop
OS: Windows 11
STEPS TO REPRODUCE:

Open the URL in the browser
Click on the "Run Scraper" button
Check cities for MPC Lean Coordinator & H&S Coordinator jobs
Open https://www.aptiv.com/en/jobs/search?country=Romania and see the job location/city is Ineu-Arad, but correct is Ineu from Arad county
EXPECTED RESULTS:
The city of the jobs is written in accordance with the city on the company website, namely Ineu

ACTUAL RESULTS:
Instead of the Ineu city, the message "Ineu-Arad is not a city in Romania" is written

Fixed!

Verificat, OK!


Introduce a more fine-grained Resources effect so runResource can be called without requiring IOE everywhere

At work we're using Conduit together with Effectful. These conduits live deep inside the logic of the app, but because runResource is constrained with IOE :> es, we had to pass IOE all the way deep down into the code.
A solution (which I implemented in our private work codebase, but I'm proposing to upstream to this library) is to introduce a new Resources effect. That way you do not need to pass the IOE constraint all the way down:
module Effectful.Resources where
-- imports elided for brevity

data Resources :: Effect
type instance DispatchOf Resources = Static WithSideEffects
data instance StaticRep Resources = Resources

-- | Discharge the `Resources` effect. Intended to be used high up the effect call stack.
runResources :: (IOE :> es) => Eff (Resources : es) a -> Eff es a
runResources = evalStaticRep Resources

-- | A `Resource` can be discharged iff `Resources` is in scope.
--
-- The implementation of this function closely matches `Effectful.Resource.runResource`,
-- but constrained by the fine-grained `Resources` effect rather than the super-coarse `IOE`.
runResource :: (Resources :> es) => Eff (Resource : es) a -> Eff es a
runResource = -- implementation is identical to `Effectful.Resource.runResource`

I'd love to contribute this work as a PR.
Let me know what you think! :green_heart:

You can use Provider for this.
Your Resources effect is Provider Resource, your runResources is runProvider_ (\() -> runResource) and then you can introduce the Resource effect into scope with provide_ @Resource :slightly_smiling_face:

Thank you very much!
Once we're ready to upgrade from <IP_ADDRESS> to <IP_ADDRESS> we'll start using Providers :heart_eyes: .


[mgmt] migrate mgmt package to esm 4

https://github.com/Azure/azure-sdk-for-js/issues/32184
@azure/arm-billingbenefits
@azure/arm-botservice
@azure/arm-cdn
@azure/arm-changeanalysis
@azure/arm-changes

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


test failure with ruby 3.0

Hello, I'm having two test failures in Ubuntu jammy with default ruby 3.0, and I couldn't find any newer commit on your develop branch...
https://launchpad.net/ubuntu/+source/ruby-riddle/2.4.2-1ubuntu1/+build/23033419
https://launchpadlibrarian.net/579194581/buildlog_ubuntu-jammy-amd64.ruby-riddle_2.4.2-1ubuntu1_BUILDING.txt.gz
I'm trying to understand if this is due to some sphinx issues or something in the packaging, but I don't have much knowledge on the topic.

thanks this fixes one failure, but leaves the other there
  1) Riddle::Client query contents should build a basic search message correctly
     Failure/Error: client.queue.first.should == query_contents(:simple)

       expected: ""
            got: "\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01*" (using ==)
     # ./spec/unit/client_spec.rb:47:in `block (3 levels) in <top (required)>'

Managed to reproduce this locally (helps that I have a new machine! 😅) - the issue is that the test suite (perhaps unwisely) requires PHP (as it compares Riddle's client communication against the official PHP client). But there's something in the official PHP client that is invalid with PHP 8. It is, however, valid against PHP 7.4.
I'm going to ponder a better way to manage this (it'd be nice to not have an old PHP version required for testing a Ruby library!) - but in the meantime, perhaps you're able to work with this requirement?

we only have PHP 8 in Ubuntu Jammy, I don't get what you ask me... If the problem is only about a test failure, I just commented out that specific test and uploaded in Ubuntu

Good to know you have a way around it. You can also set CI=true to run the specs without any need for PHP.
And I've updated the repo (but no gem release just yet) to no longer require PHP at all.


fix agDate

Current coverage is 36.03% (diff: 100%)

No coverage report found for develop at 857a747.

Powered by Codecov. Last update 857a747...ae1a2ed


[BugFix] Allow qualify and where to exist at the same time

What type of PR is this：

[x] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

Allow qualify and where to exist at the same time, like this
select tc from tall qualify dense_rank() OVER(PARTITION by ta order by tg) > 1 where tb <> 'tc'

Checklist:

[x] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto backported to target branch

[x] 3.0
[x] 2.5
[ ] 2.4
[ ] 2.3

@Mergifyio backport branch-3.0

@Mergifyio backport branch-2.5


standalone "dir" ops should (have an option to) output urls

for some weird reason this works, but feels weird:

platform paths should also be forward slashes, or urls instead of paths?

urls would proabably not work with standalone file ops

should not output urls, could be assetpath op or a new one

yeah, i think the paths should be the paths but then we need a "path2fileurl" op: cables-gl/cables/issues/6511


CIV-5678 Crete new GA collection for Resp Solicitor Two

Before creating a pull request make sure that:

[x] commit messages are meaningful and follow good commit message guidelines
[x] README and other documentation has been updated / added (if needed)
[x] tests have been updated / new tests has been added (if needed)

Please remove this line and everything above and fill the following sections:
JIRA link (if applicable)
https://tools.hmcts.net/jira/browse/CIV-5678
Change description
Introduce Master Collection to store all GA application initiated by sols. Master collection should be visible to Judge, Case worker, legal advisor apart from sol
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[ ] No

Closing this Pull request as these changes are in CIV-6118


Rule is not recognised when imported from a package

steps to reproduce:

in a package I define and export a shield rule someRule = rule()( someFunc )
in main application I import the rule and use it i.e: applyMiddlaware(shield(someRule))

But the rule never gets called.
It  works when I move definition of someRule to the main application.
I managed to figure out that the function isRule(x) in utils.js evaluates in the not working case to false (code: x instanceof rules_1.Rule).

If I remember correctly this should have been fixed in one of the recent pull requests.


Test: Improve automated issue management

Testing #32238
Complexity 2

[ ] Any OS: @bpasero
[ ] Any OS: @ramya-rao-a

In one of our satellite repos or a personal repo:

Make sure the VSCode bot is installed (Repo Settings > Integrations & Services)
Configure automatic assignment by checking in a file .github/assignment.yml with:

{
    perform: true,
    assignees: [ yourgithubid ]
}

Verify new issues are automatically assigned to the listed (comma separated) GitHub accounts.
Verify that if you assign a new issue to someone before submitting it, no automatic assignment is done.

In our main repo, configure multiple assignees (e.g., for workbench) in: https://github.com/Microsoft/vscode/blob/master/.github/classifier.yml

Verify only one of these assignees is assigned for that label and it is randomly picked.

Assigning @bpasero because he specifically asked for the random assignment and the classifier is really only operational on our main repo at this time.

I added @sandy081 and @isidorn with me to workbench, let's see how that turns out.

I can confirm that the workbench labelled issues are now being assigned to either @bpasero @isidorn or @sandy081


I built the script with Py2exe.

I was able to change a few lines and build the script in py2exe if anyone is interested. Being able to replace the hosts within the script would make it complete. Here my modified script.
HostsFileGenerator.zip
I modified updateHostsWindows.bat as well to run UpdateHostsFile.exe first so it can be run all together.
Also, the telemetry urls are included in myhosts. Just empty that file if you do not want that.

Hi @crborga, thank you!
Can you please put this in your own repo, ideally as a new branch of this repo, and submit a pull request?
Try it! 😄  You'll find this is a much better, more functional way of presenting suggestions and enhancements.


How does /cpm setskin actually work?

I am trying to assign custom models to the player as soon as they pick an origin. The command takes a player parameter and what I assume to be a skin parameter, but typing in a model I found in the model folder, such as "Exiledmale", resets me to my default model, and whatever was there before comes back after a reload. I checked the config json, and it seems like it requires the .cpmmodel affix to save. Typing in "Exiledmale.cpmmodel", however, generates the following error:
java.lang.IllegalArgumentException: Illegal base64 character 2e
	at java.util.Base64$Decoder.decode0(Base64.java:714) ~[?:1.8.0_332]
	at java.util.Base64$Decoder.decode(Base64.java:526) ~[?:1.8.0_332]
	at java.util.Base64$Decoder.decode(Base64.java:549) ~[?:1.8.0_332]
	at com.tom.cpm.shared.config.PlayerData.setModel(PlayerData.java:29) ~[cpm:0.3.1a]
	at com.tom.cpm.shared.network.NetHandler.setSkin(NetHandler.java:451) ~[cpm:0.3.1a]
	at com.tom.cpm.shared.CommandCPM.executeSkinChange(CommandCPM.java:140) ~[cpm:0.3.1a]
	at com.tom.cpm.shared.CommandCPM.lambda$register$3(CommandCPM.java:47) ~[cpm:0.3.1a]
	at com.tom.cpl.command.BrigadierCommandHandler.lambda$build$1(BrigadierCommandHandler.java:72) ~[cpm:0.3.1a]
	at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:262) ~[brigadier-1.0.17.jar:?]
	at net.minecraft.command.Commands.func_197059_a(Commands.java:217) ~[?:?]
	at net.minecraft.network.play.ServerPlayNetHandler.func_147361_d(ServerPlayNetHandler.java:1119) ~[?:?]
	at net.minecraft.network.play.ServerPlayNetHandler.func_244548_c(ServerPlayNetHandler.java:1102) ~[?:?]
	at net.minecraft.network.play.ServerPlayNetHandler.func_147354_a(ServerPlayNetHandler.java:1081) ~[?:?]
	at net.minecraft.network.play.client.CChatMessagePacket.func_148833_a(SourceFile:36) ~[?:?]
	at net.minecraft.network.play.client.CChatMessagePacket.func_148833_a(SourceFile:9) ~[?:?]
	at net.minecraft.network.PacketThreadUtil.func_225383_a(SourceFile:21) ~[?:?]
	at net.minecraft.util.concurrent.TickDelayedTask.run(SourceFile:18) ~[?:?]
	at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213166_h(SourceFile:144) ~[?:?]
	at net.minecraft.util.concurrent.RecursiveEventLoop.func_213166_h(SourceFile:23) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_213166_h(MinecraftServer.java:734) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_213166_h(MinecraftServer.java:159) ~[?:?]
	at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213168_p(SourceFile:118) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_213205_aW(MinecraftServer.java:717) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_213168_p(MinecraftServer.java:711) ~[?:?]
	at net.minecraft.util.concurrent.ThreadTaskExecutor.func_213160_bf(SourceFile:103) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_213202_o(MinecraftServer.java:696) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServer.java:646) ~[?:?]
	at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServer.java:232) ~[?:?]
	at java.lang.Thread.run(Thread.java:750) [?:1.8.0_332]

I am using 0.3.1a for Forge 1.16.5.

You have to put the base64 exported model as the argument (is't base64 encoded string of the model)
https://github.com/tom5454/CustomPlayerModels/wiki/The--cpm-command#setskin

You have to put the base64 exported model as the argument (is't base64 encoded string of the model) https://github.com/tom5454/CustomPlayerModels/wiki/The--cpm-command#setskin

Can you please elaborate on what to put in the    part of the command


Remove window check when using AsyncStorage

https://github.com/Flagsmith/flagsmith-js-client/issues/137

When using React Native, window is undefined and therefore these AsyncStorage calls don't work. This removes the window check and refactors the syntax to use optional chaining.
(Kudos to @thomasttvo for figuring this out)

@kyle-ssg Is Just bumping this to see whether there's a timeline on this being reviewed. W
e are using a fork with these changes, so no immediate rush, but unless there's some reason to use window that I haven't thought of, this should be a fairly straightforward fix.
Also this was labeled an enhancement but is actually a bug-fix as RN flag persistence is broken without it. Our app is often used without internet connectivity, and currently all the flags just revert to disabled state on startup.

This has been fixed in 3.9.2, in the end, this had to be solved in a slightly different way. Still thanks so much for the PR


Simon Game

Hey @Abhaypareek170 assigning this to you.
Do follow the contributing guidelines. Feel free to ask any question by commenting here.
Looking forward to your contribution 🚀.

Please check my PR


Improve backend unit tests

Problems
The backend(cartographer) unit test doesn't cover all the branches and functions.
for example, to cover the functions and branches for src/lib/operations/roots, we should have a test to deeply check both updateAggregatedRoots and updatePropagatedRoots. Right now, we're just calling bindRoots in test/lib/operations/roots.spec.ts which seems wrong.
This case exists in src/lib/operations/messages.ts as well.

fixed


Mira theme: define jenv_prompt_info if not defined

Should no longer see 'zsh: command not found: jenv_prompt_info'

May as well just provide this in lib/themes-and-appearance.zsh with the other dummy *_prompt_info functions. #4588 does so.


Use testinfra's new Ansible backend

Requires the latest version of testinfra
Future update will move testinfra functionality out to its own module

:+1:
Issue: #21

:heavy_plus_sign:1


simulation with actual RGB images of fractal trees

R1&3 requested simus with trees dataset rather than gaussian blobs.
We can implement this with downsampled images and explicit context signal quite easily.
Can also look at generalisation performance, rather than training error alone....

this should go into the supplementary material.
we might need two hidden layers, depending on data complexity ("non-linearly separable dataset" requested by R3). need to decide where we'll apply the Hebbian update. Layer h2?

training/test data quite large (1.5GB). don't forget to add pointer to osf or the like

Todo: HPO

addressed in #19
Todo: HPO


OLS-570: log test stage in case of any detected error

Description
OLS-570: log test stage in case of any detected error
Type of change

[ ] Refactor
[x] New feature in e2e tests
[ ] Bug fix
[ ] CVE fix
[ ] Optimization
[ ] Documentation Update
[ ] Configuration Update
[ ] Bump-up dependent library

Related Tickets & Documents

Related Issue #OLS-570
Closes #

/lgtm

/approve


Add autodoc/schema in DistanceToPointFilter.

ref https://github.com/encode/django-rest-framework/pull/6119

I tried to find out how this is implemented in the specified pr and did not find anything. But I saw that the coreapi was also used here (https://github.com/encode/django-rest-framework/pull/6119/commits/a247fe8eb067904a6b792790e79a4984e7507e03#diff-7d4109a75d3046e2d76cdf742908a36aR3). Could suggest what substitution to produce?

I would request you to hold until that pr is merged.

https://github.com/encode/django-rest-framework/pull/6119 is merged now ;) Implemented this myself until I came across this PR.

@auvipy ping

Closing for inactivity.


Stuck at 95% emitting

What steps will reproduce the problem?
Trying to Install the template via composer.
What's expected?
Template to be installed correctly.
What do you get instead?
Stuck at 95% emitting on yarn dev

Q
A

Yii vesion
<IP_ADDRESS>

PHP version
7.1.15

Operating system
Windows 10

Just find out this might be related to this issue.
I added the following on my webpack.min.js
mix.setPublicPath('web/');

Now it works like a charm.

Thank you a lot! I've added this line to the project's webpack.min.js.


is getCurrentlyPlayingTrack() not working?

Tried using it, and I can't get it to work, just prints a lot of Unable to resolve Lcom/spotify/protocol/types/PlaybackPosition; annotation class 183.
I can't seem to see the implementation in the example either, is it not working correctly?

I am having the same issue

Any updates?

This is probaly due to an outdated spotify SDK, I will look into it.


A11y_VSCode_VersionControl_ScreenReader_ Screen reader does not announce about green blue red line indicator

Environment Details:
VSCode Version : 1.36.0
OS Version : Win10
Additional Details:
MAS Violated : MAS 1.3.1
Repro Steps:
1.Open Visual studio code editor
2.Using F1 key navigate to the palette, type "git branch" and select "Create Branch"
3. Enter the branch name in the edit field and hit enter. Observe the change in branch name at the bottom left corner
4. Publish branch to the remote Git repository by navigating to the bottom left pane, arriving at the cloud button next to the git branch and hit ENTER
5.Make changes to the code by refactoring, adding/deleting new lines ; using assistive technologies, observe if SRs will alert user the to blue/green/red indicators suggesting if code has been changed/new line added/line has been removed
6.Start Screen reader.
7. Observe screen reader announcement while navigating through each line in code editor.
Actual:
screen reader does not announce about new line is added on modified or deleted .
Expected:
screen reader should announce  about new line is added on modified or deleted .
Recommendations:
Refer below link which is repository of bug fixes code snippets:
https://microsoft.sharepoint.com/teams/msenable/mas/pages/browse-fixes.aspx
User Impact:
Keyboard and screen reader user will face difficulty to access this controls.
MAS Reference:
MAS 2.1.1 - https://microsoft.sharepoint.com/teams/msenable/_layouts/15/WopiFrame.aspx?sourcedoc={54f28d1f-a2d1-4dcd-84e1-5c9b87e8aba4}
Attachment For Reference:
A11y_VSCode_VersionControl_ScreenReader_Screen reader does not announce about the green blue and red line indicator.pptx
Does this issue occur when all extensions are disabled?: Yes

This is simply not how this experience is designed.
User can press F7 and shift+F7 to go through the changes while in the diff view
And alt + F3 , alt + shit + F3 to go through the changes via zone widget - this nicely reads out all the changes in an acccessible way.
Closing as designed / will not support this


Gml 1679 prompt improvments

WIP, do not merge

Do not merge, accidentally opened targeted main instead of dev.


Split Seeds Tabs component into two different components

The Tabs component should be split into two components representing the horizontal and vertical views - we can remove the mobile queries.

@emilyjablonski I'm confused by this. What would happen to the tabs on a narrow screen size? I don't see any way this example could fit on mobile unless the tabs stack (or we switch to horizontal swiping on tabs to scroll them left/right?)
https://exygy.zeroheight.com/styleguide/s/100882/p/99dc98-tabs/b/93a6d7

@jaredcwhite This is related to this Slack convo here - a consumer could switch between the views if they want, but we have a new use case where we want the vertical view and never the tabbed view, so we need to be able to consume that separately.

In talking more with @ColinBuyck, it sounds like the best path forward would be to revert #75 and add a boolean prop that would make tabs always be vertical. We also have a separate but related component ready to develop called Menu #77 which similarly can have a vertical prop. So if that makes sense to you @emilyjablonski, I think we can close this.

Closing in favor of the solution in #79


Include local url in laikaPreview console message

Hi,
I've been playing around with Laika and it's working really well.
A tiny quality of life enhancing improvement would be to alter this message, from:
Preview server started on port 4242. Press return/enter to exit.
To something like:
Preview server started at http://localhost:4242. Press return/enter to exit.
Most terminals will recognise a url, and this would allow people to click and immediately open their site in the default browser. Most if not all of the other similar tools I use do this.
Feel free to close this issue if there are good reasons not to do so.
Thanks!

Hello there and welcome. I am not aware of any downsides for making this change and it's trivial to do so.
Unless someone comes up with any objections, I can include this in the next release (0.19.4).


Several fixes on landing page

fix #438
fix #435
According to #435, this PR updates the landing with several changes:
Enterprise edition page

Under  "Talent Assessment & Management" the "learn more" button currently point to a "404 Not Found" instead of https://sourced.tech/solutions/talent-assessment-and-management/ (missing an s at assessment)

Community edition page

Update the "download source{d}" button to link to https://go.sourced.tech/community-edition-download instead of https://go.sourced.tech/engine-download

Manager get started tab

Update the "Request CE demo" link to point to https://go.sourced.tech/community-demo

Executives get started tab

Replace the "1m video" by "Watch 1m Video" and update the title in the pop up title to "source{d}: The Data Platform for your Software Development Life Cycle'

IT Modernization & Compliance

Update ALL the "download source{d}" buttons to link to https://go.sourced.tech/community-edition-download instead of https://go.sourced.tech/engine-download

DevOps & Cloud Native Transformation

Update ALL the "download source{d}" buttons to link to https://go.sourced.tech/community-edition-download instead of https://go.sourced.tech/engine-download

Engineering Effectiveness & Efficiency

Update ALL the "download source{d}" buttons to link to https://go.sourced.tech/community-edition-download instead of https://go.sourced.tech/engine-download

Talent Assesment & Management

Update ALL the "download source{d}" buttons to link to https://go.sourced.tech/community-edition-download instead of https://go.sourced.tech/engine-download

Header & Footer

Under Company, remove About from both Header and Footer
Replace "Team" by "Management"
Careers links to "offices" it's of Openings

everything ready at staging
https://landing-staging.srcd.run


ballerinalang/ballerina Docker images should be uploaded for each release

For each release, ballerinalang/ballerina [1] and ballerina/ballerina [2] public Docker images should be pushed. They should be tagged with the release version, and the tag latest should point to the latest released image.
[1] - https://hub.docker.com/r/ballerinalang/ballerina/tags/
[2] - https://hub.docker.com/r/ballerina/ballerina/tags/

This repo is not used now. New docker implementation is in https://github.com/ballerinax/docker


chore: update the go-sdk validation workflow

Description

Updates the go-sdk validation workflow to include all examples.
Issue reference

Please reference the issue this PR will close: #[issue number]
Checklist
Please make sure you've  completed the relevant tasks for this PR, out of the following list:

[ ] Code compiles correctly
[ ] Created/updated tests
[ ] Unit tests passing
[ ] End-to-end tests passing
[ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Specification has been updated / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Provided sample for the feature / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

/test-sdk-go

Ignore the above test ^ I forgot that the action uses the existing workflow rather than an updated one.

/test-sdk-go


Support LD_LIBRARY_PATH

This helps dependent crates to use LD_LIBRARY_PATH for statically linking libelf and libz from various directories.
Refers to #49

Sorry for the delay – looks good!

I don't understand how LD_LIBRARY_PATH helps with static linking.
LD_LIBRARY_PATH is a variable meant for dynamic linker to search for shared libraries at runtime. While LIBRARY_PATH is used to search for static/shared libraries for linking.
Does the dependent crate abuses LD_LIBRARY_PATH as LIBRARY_PATH?
Ref: https://stackoverflow.com/questions/4250624/ld-library-path-vs-library-path