Contribution Guidelines

Hi @amv-dev, I have been creating a technical analysis library in rust for my personal use for sometime now and I stumbled upon yata. Yata is much more comprehensive, performant than what I have managed to create. I wanted to understand what are the features planned for yata so that I can also start contributing. I am a beginner when it comes to rust knowledge but would be happy to contribute in whatever way I can. Please let me know your thoughts on the same.
Apart from the indicators, I also wanted to have a system to do backtest on the data as well. So please let me know if you also plan to include some backtesting module in yata.

Hello @hardvain ! Thank you for you message.
For now I don't have any strict roadmap for this library. All I know is that next features will be Heikin Ashi candles conversion and time-frame conversion (it's already in the repo, but not published at crates.io yet).
I don't have any feedback from the community right now, so I can't plan any features, because I just don't know this features yet. I am not a professional trader or something like this. I just like programming, math and Rust. :)
This library has two goals:

Implement common indicators, which have a description from authoritative source. If you know some useful indicators and you can implement it (or just give some information about) - you are welcome.
Provide instruments (methods) to build your own indicators. If you know some useful function for operating on time-series - you are welcome.

To be clear: you are not forced to implement something by yourself. You can simply create an issue and provide information about methods, indicators or something else you think might be interesting to see in YaTA. It will helps a lot.
Backtesting is another big question. I don't think it is good idea to add backtesting right inside YaTA. I think it will be better if it will be a separate crate, f.e. something like yata-backtest or even yata-bt, or something else. For now I don't have any deep knowledge about backtesting, so I can't create it by myself right now.
Another great thing is visualization. I think it is very important when we talk about time-series to visualize it. The simplest idea is to create an interface to draw time-series into a simple .png or .jpg. The best way is use something like GTK and make an interactive shell for visualizing (f.e. like matplotlib in Python). But it is a way more complicated.

Thanks @amv-dev for the explanation. I myself am not a full time trader but have been trading for sometime. I was using trading view but was frustrated with the limitations of pinescript and hence started building my own library. I am barely breaking even at this moment when it comes to trading so I am not a successful one yet. However, the ability to use math and programming to find patterns is very addictive for me.
As for the features, I am currently trying to build a system that helps me answers the questions I have and help me in trading. In no proper order of priority, here is what I am trying to target:

A library that provides basic methods on a timeseries(Yata already has this)
Ability to build indicators using those methods (Yata has the necessary abstractions already)
Ability to combine multiple indicators into a composite one (Yata already has this)
Ability to have strategies (both simple and complex) that act on the result of one or more indicators and gives out buy and sell signals (Based on my skimming of yata code, at the moment, buy sell signals are baked into indicator results. Personally I feel it would be good to decouple the buy/sell/action signals from the indicator results as it helps implementing multiple strategies based on the same indicator result. If they are decoupled then an abstraction to create a strategy is required)
Ability to encode decision tree based strategies where multiple instantiations of a strategy with different parameters are run for every candle and the best one based on the results are chosen dynamically(Something like https://www.tradingview.com/script/2dU5uyqL-Profitable-SuperTrend/)
Ability to backtest these strategies (A separate module could also be good, however I slightly lean towards the same module)
Ability to configure alerts like (Alert me if price crosses a value, if an indicator crosses a value etc)
Visualization of the candles and indicator results (As you said it is the most complicated one. My thoughts were to try building a text based GUI using cursive/tui in the beginning, but I was also thinking of trying out WASM but thats very far away).
Ability to build scanners that run in the background. For example, I want the list of securities that is in a downtrend in the 5 minute time frame, list of securities trading near support resistance etc

As you may have understood, my main motive for building a library was to serve me personally for trading. In that sense, I wanted to build a comprehensive system that helps me as soon as possible. Thats the reason I wanted to build backtesting, alerts etc in a single system. I would really happy to start contributing my ideas in yata.
In my view yata already has a very good base for building indicators and methods. The immediate things that are missing for me to use yata in my day to day trading is the ability to create strategies/backtest it and set alerts on it. I can start working on these areas. Whether it is going to be a separate module or not is something we can discuss in depth I believe.
Please let me know your thoughts on the above

@amv-dev I made a quick PR for creation of strategies. Please have a look at https://github.com/hardvain/yata/pull/1/files


Vue 3 shown as supported?

I think your blog post mentioned Vue3 support was coming but the repo shows it’s already available? Can you clarify?

Vue3 support is included as of v1.1.


Incorrect strict parsing with japenese parenthesis

When dateString and formatString contain the the character "）"  in moment(dateString, formatString, localeString, true);, the parsing fails (checked with .isValid()).
"）" here is the japanese fullwidth parenthesis character "marukakko" (/U+FF09), the whitespace is part of the character itself, not another whitespace.
moment("2016年5月18日（水）", "YYYY年M月D日（dddd）", "ja", true).isValid(); // Returns false
This code returns false e.g. in moment version 2.11.0, 2.10.6 and 2.5.1

Side note, if I replace "）" with ")", everything works fine.

@StefanIGI thank you for pointing this out.
It turns out its another regression caused by stricter weekday parsing combined with the fact that the closing parenthesis character is considered part of the weekday.
We'll fix that in 2.11.1.

Now I see that we include a lot of non-letters in our unicode regex. On the other hand putting: http://stackoverflow.com/a/22075070 is a bit too much.
I guess I'll play around with https://github.com/moment/moment/pull/2869 and see how many locales are affected by removing the ranges, and replacing those with exact regexes.
Also its not a regression for 2.11.0 (I tested), so I'll investigate that after we release 2.11.1.

even if you replace the parentheses, you need dddd -> dd for Moment to parse correctly. Is this intended?


Minor bug fixes

Disabled drag and drop. Fixes the issue of the application opening up the content when the user drags and drops files into the application.
Issue reported while Uploading files of size 0 bytes have been fixed

r? @ustulation
(maidsafe_highfive has picked a reviewer for you, use r? to override)

r? @shankar2105

Reviewed 5 of 5 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from the review on Reviewable.io


MWPW-140993 - [CC] update query-index path for merch-cards

as per request from GWP, adjusting query-index path for merch-card documents

Resolves: MWPW-140993
Test URLs:

Before: https://main--cc--adobecom.hlx.live/?martech=off
After: https://mwpw-140993--cc--honstar.hlx.live/?martech=off

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (9822a70) 89.83% compared to head (a5a9a7e) 89.83%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #155   +/-   ##
=======================================
  Coverage   89.83%   89.83%
=======================================
  Files           8        8
  Lines         679      679
=======================================
  Hits          610      610
  Misses         69       69

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


create a script to generate files of specific sizes

cfpland.com is down right now, so it's normal that the links checked is failing.


update gateway links to new repo

point to new repo at /bobanetwork

already fixed in #6 so closing this one


Allow orderCellsTop to be provided with row index integer

#1048

Thanks for the PR! However, this is a distribution repo - see the contributing document for details. DataTablesSrc is where pull requests should go.


Differentiate regions and zones in the GCP config

What does this PR do?
Differentiate regions and zones in the GCP config
Which scenarios this will impact?
Motivation
We currently mix zones and regions in our config
Additional Notes
https://cloud.google.com/compute/docs/regions-zones

/merge


Find async or non-async client

In some cases it doesn't matter if the installed client is sync or async (for example when known to be used in PluginClient). For that we could have a discovery which finds a sync or async client.

or the code could just try to discover whatever it prefers, catch the
exception if none found and try the other. i would not overdo it with
factories ;-)

Actually, I was thinking about the same :smile:
But it would still be useful as a snippet somewhere.

sure, mentioning it in the doc would make a lot of sense. maybe a
section in the client discovery doc?

Or we could add an argument to the find method where we allow emulated client
HttpAsyncClientDiscovery::find($allowEmulation = false);

So if no async client is found and allowEmulation is set to true it use the Sync Client with an emulated async.
WDYT ?

 If you are a application author and writing your own code then you probably do not use discovery at all.
As a library author you usually do not care if the client is emulated or not, you just want the async client api.
The only time you care is if you are an application author using a library that is using HttpAsyncClientDiscovery::find(). Then you want to make sure discovery will find an async client. With that said, we cant have any special parameters to find() nor can you have a special HttpAsyncClientDiscovery::findNoEmulated().
What I propose is that we, by default, are trying to find all real async clients and then fallback on emulated ones.

I would rather keep it simple and let the developer handle the situation. We don't know the preference of a given code. Adding emulation related code to the discovery adds an extra dependency (client-common) and complexity.

i agree that we should keep discovery simple. you can try to find async,
if not found find sync and wrap it, if that is what you need. finding a
sync client and hiding that by wrapping it in an emulator is doing a
disservice, and adding tons of configuration options is complicating
things too much imho.
if somebody really wants to use discovery and the emulated client (e.g.
using a library that only finds an async client and has no DI, but you
need to use it with a sync client), they can still explicitly set the
emulated client on the async discovery. so the current code does cover
all conceivable situations, but makes emulation a bit more effort for
the sake of transparency and simplicity

Okey. Big -1 for adding more dependency.
The situation we have not covered is when I as a library developer what to emulate a async client. I believe I can write an extra strategy for that that we let the users opt-in to.

I just added #65. I as a application author may write a strategy like that. What I want to push in is the support for a strategy to return a candidate with a closure.
What do you think? That would make the discovery super flexible, but... could it be too flexible?

do we still need to do something about this or is it good enough as is?

We agreed to add a cookbook entry

do we still need to do something about this or is it good enough as is?

https://github.com/php-http/documentation/issues/117


Improve description of the Automation Broker Operator

The description and metadata of the Automation Broker is lacking. We should provide example of how to use it as well as links to appropriate upstream repos, maintainers, container images.

/cc @johnkim76 @shawn-hurley


color sequences

color sequences are currently too complicated and simultaneously not useful enough. we can simplify sequences by discarding the notion of different sequence types, bytes per pixels, and scale. various sequence types (forward, reverse, static etc...) and scales can all be represented simply by changing the order and length of the data in the buffer. adding complexity in this library offers little to no advantage.
// A simplified color sequence definition
typedef struct _color_sequence_t {
  color_t* colors;
  size_t length;
} color_sequence_t;

// And more useful methods
int color_sequence_get_at (color_sequence_t* sequence, size_t idx, color_t* color);
int color_sequence_get_linear (color_sequence_t* sequence, double phase, color_t* color);
int color_sequence_get_circular (color_sequence_t* sequence, double phase, color_t* color);
...
int color_sequence_reverse (color_sequence_t* sequence);

This is a prerequisite for #9


How to share a file with java object created with jdx to Java application?

Hi,
Forgive me if this question sounds too basic, but I'm unable to properly frame my problem in google in order to get some bearings on what to do, or if I'm even doing something terribly silly.
I've produced a matrix in R which a colleague needs to use in a java application. I have already passed him the matrix as a .csv and as a .mtx file, but I'm experimenting if it's possible to send him a serialized java object which he can simply consume directly without much overhead on his end.
I went through jdx's vignette but couldn't find insights into how to actually share the objects created.
Following this, I tried the following example:
library(rJava)
library(jdx)
m <- matrix(1:9, nrow = 3, ncol = 3)
mj <- convertToJava(m)
mjs <- jserialize(mj)

But I get:

Error in jserialize(mj) : could not find function "jserialize"

My question is then, considering my R service is not currently integrated with my colleagues java application, how can I share a jclass object created with convertToJava with him?
Also, please feel free to bash me if this is a silly approach to solve this problem and if there's maybe a more efficient/traditional approach to go about this.

Thank you for your question. You are very close; just need to put a period in front of jserialize. (It's rJava's unconventional naming scheme..). With that said, I still suggest using CSV or JSON for simple data sharing unless you have a specific reason to do otherwise.


[BUG] Text non readable in popout windows

The text is black on dark in some popout wind like from the compendium.
To Reproduce
Steps to reproduce the behavior:

Go to open a popout window, like compendium.

Screenshots

Desktop (please complete the following information):

FoundryVTT Version 113.5

Additional context
None to add

This is already a known issue and should be fixed with the next release; since this is technically part of a different issue (major display overhauls/fixes), I'll close this for now to keep duplicate issues minimal.


Create embedding API

Expose sentence_transformers to generate embeddings from TEXT.

It's actually this list: https://huggingface.co/models?library=sentence-transformers
I need to rename the param to something other than project, since it's not. Originally I had a load_model() that created the project, rather than using it directly, but that is another can of worms.


enable acrylic not working

Hi! The enable arcylic option in the settings is not working, it worked once in between but not before that nor after that, could you tell what went wrong 😅?

also i am using hp laptop 15-eg0 with i5 11th gen and iris and mx450 graphics.

Please read the FAQs

Hi there! The application is focused and no other applications are opened i even tried restarting after applying the setting, am not seeing any effect.

@infusionproximity:  What version of OS ant WT are you using?
On Windows 10 Version 21H1 (OS Build 19043.1165) and WT Version 1.9.1942.0 enabling acrylic works as expected.
Sample screenshot with on tab running PS and 2nd running NU:

i am running 20h2 os build 19042.1202

demo.zip
i have used step recorder to show what i see

also latest version of windows terminal

After using it for a few days, the enable acrylic features works 10 percent of the times i start my laptop

Is your laptop plugged in?
Does acrylic work in other apps, like Calculator?

Yes that was the issue! acrylic in calc worked nonetheless, it seems that it is dependent on the power mode!


Remove false desc from bicaridine

About the PR

Removes last bit of text in bica's desc that talks about staunching bleeding which it never did (at least for the last 7+ months) and doesn't do currently. Confuses a lot of people. It even advises them to overdose on it (which can kill players or make doctors overdose patients and make them hard to defib)
Pre-emptively - current bloodloss is naturally regenerated in near 27 seconds, it's much better to remove the description, rather than to add effects to bicaridine, since bleeding danger is non-existent.
Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog

:cl:

remove: Removed a part of bicaridine's description that talked about non-existent anti-bleeding effects and advised players to overdose on bica.

might be worth just adding this effect to the OD, sounds interesting

might be worth just adding this effect to the OD, sounds interesting

Might be, but then it needs for bleeding system to be much, much more robust.
Currently, as I've said, bleeding ends naturally faster, than you can get a tranexamic pill, take it and digest it. It basically doesn't exist as a mechanic.
My vision is to push this thought into as much realism as possible, but I'm 100% sure it'd be met with only negativity, since we had... I think 4 different PRs nerfing bleeding into it's current state.

I think this is leftover text from when bicardine stopped bleeding, it doesn't anymore


Pykafka lost messages when exception happens

Hi:
PyKafka version:  2.4.0
Kafka version:  <IP_ADDRESS>
We got some exceptions with pykafka as follow:
Traceback (most recent call last):
  File "/home/itest/scorpio_job/common/kafka/kafka_producer_client.py", line 136, in send
    producer.produce(message)
  File "/usr/local/lib/python2.7/site-packages/pykafka/producer.py", line 341, in produce
    self._raise_worker_exceptions()
  File "/usr/local/lib/python2.7/site-packages/pykafka/producer.py", line 202, in _raise_worker_exceptions
    raise ex
error: [Errno 32] Broken pipe

We sended messages with async producer, so pykafka's sending thread will send more than one messages(let's say 100 messages) in a sending round. When it get "broken pipe" exception, this 100 messages would be lost because pykafka had remove these 100 from sending queue.
Am I right or do I miss something?

Hi @zhanghan987. The producer includes retry logic that is used by the worker threads that send messages to brokers. You're correct that the entire message batch (in your example, 100 messages) would be lost when an unhandled error such as yours is encountered in the producer's worker thread. To handle this, I recommend keeping recently produced messages in memory and checking them against Producer.get_delivery_report(). If you fail to receive a delivery report for a given message after a crash, you can have your program retry that message.


unlink method calls deleteAsync inside instead of unlinkAsync

Signed-off-by: Aayushya Vajpayee<EMAIL_ADDRESS>

This pull request corresponds to #2777

Thanks for contribution!


"request_body": "${parameters.input}", should be "request_body": "${parameters.inputs}",

https://github.com/opensearch-project/ml-commons/blob/2e0946aed3887588fcfcada0dc7967bf7a815550/docs/tutorials/aws/semantic_search_with_sagemaker_embedding_model.md?plain=1#L195
"request_body": "${parameters.input}", should be "request_body": "${parameters.inputs}",

It's a little bit confusing. In the demo showcase that we used sageMaker, we used ${parameters.inputs} in the sageMaker connector, but the pre/post-processing functions are provided manually in the connector. For example, https://github.com/opensearch-project/ml-commons/blob/2e0946aed3887588fcfcada0dc7967bf7a815550/docs/tutorials/conversational_search/conversational_search_with_Cohere_Command.md.

"input" is correct, but you are right there are places where it has "inputs" which is what had me confused, but the code is looking for "input"

Thanks for your feedback.


Update Java 8

fantastic resource getting Cassandra up and running almost seamlessly
With some recent updates there are a couple of gotchas with java version so I had to upgrade to OpenJDK 8 in the Vagrantfile
# configure openJDK repo
add-apt-repository ppa:openjdk-r/ppa
apt-get update
# install Java first, then DataStax Community Edition
apt-get install openjdk-8-jdk

Thanks for the feedback here; in subsequent updates (including one today) I've adjusted the templates to grab the latest OpenJDK 8 now.


Use Lazy and Suspence Instead of @loadable/components

Lazy and Suspence only need with renderToPipeableStream, we don't need it


Unhandled rejection TypeError: Cannot read property 'write' of null

Hi I use this library to connect to Microsoft Azure Service Bus. Sometimes my connection crashes and then I try to call disconnect before reconnecting again. Then I receive following error:
Unhandled rejection TypeError: Cannot read property 'write' of null
   at Object.frames.writeFrame (/path/to/project/node_modules/amqp10/lib/frames.js:56:9)
   at Connection.sendFrame (/path/to/project/node_modules/amqp10/lib/connection.js:328:10)
   at Connection._sendCloseFrame (/path/to/project/node_modules/amqp10/lib/connection.js:490:8)
   at Object.Connection.stateMachine.CLOSE_RCVD.sendClose (/path/to/project/node_modules/amqp10/lib/connection.js:263:14)
   at Object.event [as sendClose] (/path/to/project/node_modules/stately.js/Stately.js:203:67)
   at Connection.close (/path/to/project/node_modules/amqp10/lib/connection.js:323:15)
   at /path/to/project/node_modules/amqp10/lib/amqp_client.js:364:18
   at Promise._execute (/path/to/project/node_modules/bluebird/js/release/debuggability.js:300:9)
   at Promise._resolveFromExecutor (/path/to/project/node_modules/bluebird/js/release/promise.js:481:18)
   at new Promise (/path/to/project/node_modules/bluebird/js/release/promise.js:77:14)
   at AMQPClient.disconnect (/path/to/project/node_modules/amqp10/lib/amqp_client.js:352:10)

I'm using version 3.5.0

Here's how to reproduce the error

run webcenter/activemq container (as of today)
start app and request amqp connection

this will end up with the following
2017-03-17T11:14:47.098Z - info: [log] [amqpConnection] Create new connection for "amqp://admin:****@<IP_ADDRESS>:61616"
  amqp10:client connecting to: amqp://admin:admin@<IP_ADDRESS>:61616 +0ms
  amqp10:transport:net Connecting to <IP_ADDRESS>:61616 via straight-up sockets +6ms
  amqp10:connection Transitioning from DISCONNECTED to START due to connect +1ms
  amqp10:connection Sending Header 414d515003010000 +10ms
  amqp10:connection Transitioning from START to IN_SASL due to connected +0ms
  amqp10:connection Rx:<PHONE_NUMBER>4163746976654d510000000c01000001710000000c00115463704e6f44656c6179456e61626c65640101001253697a6550726566697844697361626c656401000009436163686553697a650500000400000c50726f76696465724e616d650900084163746976654d510011537461636b5472616365456e61626c65640101000f506c6174666f726d44657461696c7309004c4a564d3a20312e382e305f39312c2032352e39312d6231342c204f7261636c6520436f72706f726174696f6e2c204f533a204c696e75782c20342e342e362d67656e746f6f2c20616d643634000c4361636865456e61626c6564010100145469676874456e636f64696e67456e61626c65640101000c4d61784672616d6553697a6506000000000640000000154d6178496e61637469766974794475726174696f6e06000000000000753000204d6178496e61637469766974794475726174696f6e496e6974616c44656c6179060000000000002710000f50726f766964657256657273696f6e090006352e31342e33 +31ms
  amqp10:sasl Server SASL Version:<PHONE_NUMBER>416374 vs 414d515003010000 +1ms
  amqp10:connection Error from socket: AmqpMalformedHeaderError: malformed header: Invalid SASL Header<PHONE_NUMBER>416374 +2ms
  amqp10:client connection error:  { AmqpError: malformed header: Invalid SASL Header<PHONE_NUMBER>416374
    at Sasl.headerReceived (/node_modules/amqp10/lib/sasl.js:58:19)
    at Connection._tryReceiveHeader (/node_modules/amqp10/lib/connection.js:373:17)
    at Connection._receiveAny (/node_modules/amqp10/lib/connection.js:403:17)
    at Connection._receiveData (/node_modules/amqp10/lib/connection.js:357:8)
    at NetTransport.<anonymous> (/node_modules/amqp10/lib/connection.js:515:38)
    at emitOne (events.js:96:13)
    at NetTransport.emit (events.js:189:7)
    at Socket.<anonymous> (/node_modules/amqp10/lib/transport/net_transport.js:26:49)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:189:7)
    at readableAddChunk (_stream_readable.js:176:18)
    at Socket.Readable.push (_stream_readable.js:134:10)
    at TCP.onread (net.js:551:20)
  name: 'AmqpMalformedHeaderError',
  message: 'malformed header: Invalid SASL Header<PHONE_NUMBER>416374' } +0ms
2017-03-17T11:14:47.153Z - warn: [log] [amqpConnection] AMQP connection:errorReceived AmqpError: malformed header: Invalid SASL Header<PHONE_NUMBER>416374
    at Sasl.headerReceived (/node_modules/amqp10/lib/sasl.js:58:19)
    at Connection._tryReceiveHeader (/node_modules/amqp10/lib/connection.js:373:17)
    at Connection._receiveAny (/node_modules/amqp10/lib/connection.js:403:17)
    at Connection._receiveData (/node_modules/amqp10/lib/connection.js:357:8)
    at NetTransport.<anonymous> (/node_modules/amqp10/lib/connection.js:515:38)
    at emitOne (events.js:96:13)
    at NetTransport.emit (events.js:189:7)
    at Socket.<anonymous> (/node_modules/amqp10/lib/transport/net_transport.js:26:49)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:189:7)
    at readableAddChunk (_stream_readable.js:176:18)
    at Socket.Readable.push (_stream_readable.js:134:10)
    at TCP.onread (net.js:551:20)
  amqp10:client disconnected +2ms
2017-03-17T11:14:47.154Z - warn: [log] [amqpConnection] AMQP connection:closed
  amqp10:connection Transitioning from IN_SASL to DISCONNECTED due to error +1ms
  amqp10:framing sending frame:  @close(24) [error={ condition: 'connection:framing-error',
  description: 'malformed header: Invalid DOFF' }] +2ms
  amqp10:trace raw: [0000005602000000005318c0490100531dc04303a31d616d71703a636f6e6e656374696f6e3a6672616d696e672d6572726f72a11e6d616c666f726d6564206865616465723a20496e76616c696420444f4646c10100] +0ms
/node_modules/amqp10/lib/frames.js:56
  stream.write(buffer, callback);
        ^

TypeError: Cannot read property 'write' of null
    at Object.frames.writeFrame (/node_modules/amqp10/lib/frames.js:56:9)
    at Connection.sendFrame (/node_modules/amqp10/lib/connection.js:328:10)
    at Connection._sendCloseFrame (/node_modules/amqp10/lib/connection.js:490:8)
    at Connection._receiveAny (/node_modules/amqp10/lib/connection.js:412:12)
    at Connection._receiveData (/node_modules/amqp10/lib/connection.js:357:8)
    at NetTransport.<anonymous> (/node_modules/amqp10/lib/connection.js:515:38)
    at emitOne (events.js:96:13)
    at NetTransport.emit (events.js:189:7)
    at Socket.<anonymous> (/node_modules/amqp10/lib/transport/net_transport.js:26:49)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:189:7)
    at readableAddChunk (_stream_readable.js:176:18)
    at Socket.Readable.push (_stream_readable.js:134:10)
    at TCP.onread (net.js:551:20)

It's even easier to reproduce. This happens when connecting to any service which talks anything, but Amqp 1.0.
With the contained mentioned above it was a long container start.

@wingedfox I think you're running into an unrelated case where the underlaying connection is attempted to be reused before a reconnect completes (in your case because sasl auth has failed). Unfortunately, the failure point is the same for so many of these cases so they all look like the same problem - however they have different root causes.  I'm trying to do some rewrites of our internal state machines in order to better handle reconnection/reattachment which should alleviate some (if not all) of these issues (#303, #295, #291, etc), like  but am limited by time availability.

@mbroadst, if you can describe target solution I can try to help with the implementation.

I am running into this issue as well intermittently using the Azure IoT Hubs.
The script I'm using is here: https://github.com/Mission-Mars-Fourth-Horizon-Org/CoffeePotDevice/blob/master/CoffeeClient/node/readdevicetocloudmessages/ReadDeviceToCloudMessages.js  .  The code is basically just the code created during the Connect your simulated device to your IoT hub using Node walkthrough in the Azure Docs.
Here's a .zip with my actual code:
ReadDeviceToCloudMessages.zip
The current version of the libraries used by the app are:
readdevicetocloudmessages
└─┬<EMAIL_ADDRESS>  ├─┬<EMAIL_ADDRESS>  │ ├─┬<EMAIL_ADDRESS>  │ │ └─┬<EMAIL_ADDRESS>  │ │   ├──<EMAIL_ADDRESS>  │ │   ├──<EMAIL_ADDRESS>  │ │   ├──<EMAIL_ADDRESS>  │ │   ├──<EMAIL_ADDRESS>  │ │   ├──<EMAIL_ADDRESS>  │ │   ├──<EMAIL_ADDRESS>  │ │   └──<EMAIL_ADDRESS>  │ ├──<EMAIL_ADDRESS>  │ ├─┬<EMAIL_ADDRESS>  │ │ └──<EMAIL_ADDRESS>  │ ├──<EMAIL_ADDRESS>  │ ├──<EMAIL_ADDRESS>  │ └──<EMAIL_ADDRESS>  ├─┬<EMAIL_ADDRESS>  │ └──<EMAIL_ADDRESS>  ├──<EMAIL_ADDRESS>  └──<EMAIL_ADDRESS>
The problem happens intermittently.  The program will crash immediately after initializing the consumer on each partition.


When you are dragging token, other token cards being dragged over become same icon as one being dragged

When you are dragging a token tile, the token tiles you are dragging over become the same icon as the one you are dragging.
This is a mix of new and migrated tokens.

Thanks @Githubuxer for reporting this issue, I see the problem as well, it looks like a Cell re-use issue and we should definitely fix it.

Not sure if it is related or should be posted as separate issue but it is extremely difficult to drag items where you want them to go.

Not sure if it is related or should be posted as separate issue but it is extremely difficult to drag items where you want them to go.

We have that in https://github.com/freeotp/freeotp-ios/issues/103

@Githubuxer Can you test this with FreeOTP v2.2 and let me know if it helps?

Very nice! Works perfectly.


remove odo v2delete

more info in #5521
Acceptance criteria

[x] test cases for the removed command should be removed, tests cases that use removed commands should be updated
[x] commands that are going to be removed need to be removed together with their implementation and test cases
[ ] all help messages and error messages need to be reviewed and updated to make sure that it doesn't contain a reference to commands that no longer exist
[x] remove Delete function in https://github.com/redhat-developer/odo/blob/a8218725e4e556b76e11ca2194a500bc0f4dee32/pkg/component/component.go#L547

/reopen
Forgot to remove delete reference from Makefile.

can you also update https://github.com/redhat-developer/odo/blob/main/docs/website/versioned_docs/version-3.0.0/command-reference/delete.md ?


Incorrect command for Viya 3.x

You need to use --no-compress option in command line for Viya 3.x as documented in SAS documentation, so please can you align GitHub documentation
path-to-bin-java -jar loguccino-version.jar patch --no-compress  path-to-myOutput.csv

Thanks for the suggestion @JMPoilane. I've added a note at the beginning of the readme.


Chevron changes size/shape on focus.

Chevron changes size/shape on focus.

Originally posted by @jrbarnes9 in https://github.com/ONSdigital/design-system/issues/589#issuecomment-558065903

 Issue #658: CTA button text shouldn't be underlined on hover...


Feature Request: Make name on tab same with name on profile

I could not find if this feature has been requested or already been on the to-do list but it would be great to name the Tab similar to what is on the profile.json.
i.e. "CMD" instead of "C:\WINDOWS\system32\cmd.exe"

This'll be #608. Thanks!


Question about logger message (hashtag657)

I am using loguru to log info level information out of an app.  I call logger.info from a main function and then from some other functions.  The format for all of these is "logger.info(f'Extracting {item} rank from string: {rank}')" though the couple of calls to logger.info in my main function don't use f strings, they are just like "logger.info('Processing complete')".  In the calls outside of main, what ends up in my log file looks like this:

05-13-22 at 12:45 | INFO | myapp.py:462 | Extracting ABC4322 rank from string: hashtag360 in

In main, they look like this:

05-13-22 at 12:45 | INFO | myapp.py:667 | Processing complete.

My question is where does that "in" at the end of my first example come from?  Should I be putting something in my logger.info() call to pass in the name of the module I'm in or what?  I just don't get why I see that "in" in only some of my logger.info() calls.
Thanks for any insight--
Al

The "in" is probably part of your rank variable or is somehow added by a custom formatter of your sink.
It could also maybe being a third library writing concurrently to stderr.
I can't help more without knowing your logging configuration. One thing is for sure, Loguru does not add "in" by itself. ;)

Feel free to re-open this ticket if your issue isn't solved.


Request for App: Messaging app

Create an app that utilizes the email address of the user and uses the public key of each users zone file to encrypt and confirm messages sent. (Transcribing from a one off convo with @jcnelson  so hopefully everything is there to piece that together :-) )

I think this would be easier if you do this as integration (I think Matrix matches perfectly).
With Blockstack's capabilities Matrix could retrieve their handles and device keys from a given Blockstack ID and then do their chats as usual. With Blockstack's storage provider you could even store your own chat history in your profile.

@vsund thats sounds neat. Do you know what the scope of building something basic is?

I talked with @ara4n some days ago and he said that their search a decentralized identity system but have a few requirements:

registering should be free (should be possible after sub namespaces are implemented)
verified emails (should be possible with 3rd party attestors or with some DKIM magic)
no trust at the middle of the network (fulfils Blockstack by design)

With these things done, one could start the integration. But all in all I think the guys at Matrix are interested in realising this too :)

Yep, that's completely fair, would be interesting to realize. Would love to hear @jcnelson or @ara4n's thoughts are on this.

So: on the Matrix side we're very much (still) looking for a decentralised identity system that could help users discover each other based on existing identifiers when starting a conversation.  The requirements are:

A way for users to reliably assert ownership of a given identifier (e.g. email address).  This means not blindly trusting a centralised email verifying service, but instead using DKIM and/or some kind of identity key signing to let the mailserver or end-user prove ownership.
Alternatively, if one uses centralised verifying services, you need a way to track the reputations of their identity claims.  So for something unavoidably centralised such as MSISDN verification, you'd have a way to establish whether you trusted the reputation of the 2FA vendor(s) who made the claim.
We don't want users to ever have to pay to use the system (especially with a cryptocurrency)

From speaking to @muneeb-ali at DWS last year, I got the impression that the identity verifying services are assumed to be trusted - and blockstack concerns itself with maintaining the ledger of the claims, rather than tracking the reliability of the verifiers.  I also got the impression that whilst blockstack was currently subsidising the cost of adding records, this was a temporary bootstrapping measure in the grand scheme of things.
Matrix should be a good fit for a blockstack-powered messaging system, assuming that blockstack could solve the identity piece!

Hey @ara4n, good to hear from you!
Blockstack gives users the ability to associate arbitrary off-chain data with their on-chain name and public key.  This could easily include both a DKIM signature as well as any additional 3rd party attestations.  The integration software could be written to query these attestations as part of the authentication process.

I got the impression that the identity verifying services are assumed to be trusted - and blockstack concerns itself with maintaining the ledger of the claims, rather than tracking the reliability of the verifiers

This is true.  The user (or application) decides which claims are meaningful.  We believe that determining the trustworthiness of a particular verifier is beyond the scope of an identity system, since it's fundamentally a social problem.

I also got the impression that whilst blockstack was currently subsidising the cost of adding records, this was a temporary bootstrapping measure in the grand scheme of things.

Yes, this is the case.  Even if names had no cost of their own and didn't expire (both of which are supported in Blockstack), someone would still need to pay the transaction fee.  We rely on this to both reduce spam and to rate-limit writes to the system (i.e. a node's local state cannot grow or mutate faster than the underlying blockchain).
Matrix looks like a really cool system!  I'd love to add support for it.  We anticipate that many Blockstack applications will need a generic multicast notification mechanism (e.g. "You have mail", "a new forum post was added", "a new tweet arrive"), and we plan to add a driver model for using existing messaging systems to transport notifications.  I was planning on using IRC at first, but if Matrix is more stable and more resilient to network partitions, we can go with Matrix instead :)

Hopefully Matrix surpasses IRC in pretty much every way, being an open global decentralised network providing free-form JSON pubsub & persistence, signed into merkle dags, and end-to-end encryption via https://matrix.org/git/olm.  Admittedly we're still late beta, but in practice there a few thousand servers out there, >1M users, >200K rooms, and generally things work pretty well.  The biggest issue right now is that latency & throughput isn't quite as good as something simple like IRC, but we're getting there :)
Ignoring the question of tracking the reputation of centralised ID brokers (e.g. if a 2FA MSISDN vendor can be trusted or not), I'm unclear why nobody has set up email verification servers publishing proofs into blockstack using DKIM or similar to try to prove the authenticity of the emails.  For that matter, I'm unclear as to why keybase doesn't do email proofs either.
Surely someone's doing this already?  And if not, why not?

There is as well a Tox project which aims at full decentralization of a messaging system. Convenient naming is based on in-house DNS. Seems like Blockstack is a perfect candidate for pairing with Tox Protocol. We should definitely get in touch with Tox community to discuss this possibility.
Though, I don't see a workaround for bootstrapping and running blockstack nodes on a mobile device in a decentralized environment (that is a necessary property for the messaging system in my opinion).

@i1o thanks for reaching out! Tagging @pstan26 as well.


Add api documentation

[x] Grid Node REST API
[x] Grid Node Websocket API
[x] Grid Gateway REST API

since we are merging these all apps into one.
maybe just do documentation for the one which we will be keeping? less work.

This branch is outdated and huge. I'll open another PR.


Trouble using an InstallationStore other than the default

Hello 👋 ,
I am having trouble using an InstallationStore other than the default. Specifically, it looks like the installation data is not being installed when using other installation stores.
I have a  Django app that integrates with a new Slack application I am building. Our org does not have a Slack enterprise plan. Our org uses Okta OAuth for users to sign into Slack.
In the Slack Apps web platform (api.slack.com) I have added the proper Request URL ending in /slack/events to
Features > Interactivity & Shortcuts > Interactivity [ON] > Request URL

As well as to a slash command's Request URL.
When working with the default installation store, the installation works. This is on my local machine and leveraging an ngrok tunnel.
The default installation store cannot be used in production environment because the Django app is hosted on Heroku, which means the server's filesystem is ephemeral.
So I looked to the AmazonS3InstallationStore, and confirmed that my AWS credentials are correct and that the bucket's permissions are correct.
For example, running
try:
    s3_client.put_object(Bucket=settings.AWS_BUCKET, Key='test-file.txt, Body='test content')
   print('File written successfully')
except Exception as e:
   print(f"Failed to write file to S3: {str(e)}")

properly creates the object in the S3 bucket.
But when using this s3_client with an instance of AmazonS3InstallationStore, it does not look like the SackBolt App() instance ever writes the installation data to the s3 bucket. Instead  I ultimately get the following:
Failed to find an installation data for enterprise: none, team: <teamID>: An error occurred (NoSuchKey) when calling the GetObject operation: The specified key does not exist.

I kept the AmazonS3InstallationStore installation store but reverted to localhost + ngrok, and here again nothing is being written to the S3 bucket. So I thought it was due to the Heroku environment at first, but now I am wondering if the installation store's save() method is not running?
I even tried the SQLite3InstallationStore on localhost + ngrok but that is not writing any records to the sqlite3 database either.
Here is my current code:
import logging

from boto3 import Session
from django.conf import settings
from slack_bolt import App
from slack_sdk.oauth.installation_store.amazon_s3 import AmazonS3InstallationStore

logger = logging.getLogger(__name__)

aws_session = session = Session(
    aws_access_key_id=settings.AWS_ACCESS_KEY_ID,
    aws_secret_access_key=settings.AWS_SECRET_ACCESS_KEY,
    region_name=settings.AWS_DEFAULT_REGION,
)

s3_client = session.client("s3")

s3_store = AmazonS3InstallationStore(
    bucket_name=settings.AWS_BUCKET,
    client_id=settings.SLACK_CLIENT_ID,
    s3_client=s3_client,
    logger=logger,
    historical_data_enabled=False,  # Keep old versions if True, False for simpler setup
)

app = App(
    signing_secret=settings.SLACK_SIGNING_SECRET,
    installation_store=s3_store,
    logger=logger,
)

Would love your take on this, all thoughts appreciated.
Reproducible in:
The slack_bolt version
slack_bolt==1.20.1
slack_sdk==3.32.0

Python runtime version
Python 3.10.9

OS info
ProductName:		macOS
ProductVersion:		14.7
BuildVersion:		23H124
Darwin Kernel Version 23.6.0: Wed Jul 31 20:49:39 PDT 2024; root:xnu-10<IP_ADDRESS>0.5~1/RELEASE_ARM64_T6000

But also in Heroku server.
Steps to reproduce:
(Share the commands to run, source code, and project settings (e.g., setup.py))
On local: Django's runserver & ngrok http
Heroku Procfile command is: daphne app_name.asgi:application --port $PORT --bind <IP_ADDRESS> -v2
Expected result:
Similar to the default installation store automatically adding the installation data to its storage target (eg filesystem), I expect the S3 installation store to automatically store the data in the s3 bucket, or the sqlite3 store to insert into the sqlite3 database.
Actual result:
Focusing on the s3 store -- the installation data is never uploaded to the s3 bucket, ultimately leading to
Failed to find an installation data for enterprise: none, team: <teamID>: An error occurred (NoSuchKey) when calling the GetObject operation: The specified key does not exist.

Requirements
Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you are agreeing to those rules.

Hi, @brunogarciagonzalez! Thanks for submitting this issue! 😄
I'm currently looking into this, but wanted to get some additional insight into what was happening. How are you installing instances of your app? Are you installing through the OAuth flow at /slack/install or through something else?

Hi @hello-ashleyintech !
Thanks for your time and help with this.
The app was created and installed into the Slack workspace via the api.slack.com web platform.
So it began by https://api.slack.com/apps and creating a new "Web API Application" there using the From scratch option.
My org's workspace was specified in the app creation process.
I have also triggered via the web platform's "Reinstall" button:
Settings > Install App > Reinstall to <TeamName>

With regards to /slack/install, I am not handling any webhooks or events outside of the SlackBolt App() instance.
I looked into listening for the "app_installed" event via the SlackBolt App() instance as follows:
@app.events("app_installed")
def handler_method(etc):
    pass

But this even was never sent my way whenever reinstalling via the "Reinstall" button. Presumably because my Slack app would need admin.apps:read permission? But that seems reserved for Enterprise Grid organizations, and we are not on an enterprise plan.
But when using the default installation store (I think* its the FileInstallationStore) with my current SlackBolt App() config, I was able to interact properly with our actual Slack workspace. The use of the AmazonS3InstallationStore looks to not write installation data to the s3 bucket.
Or how can the default FileInstallationStore work fine (which I take it to mean it properly handles the installation data) but the same flow for AmazonS3InstallationStore seems to not save the installation data, leading to the error
Failed to find an installation data for enterprise: none, team: <teamID>: An error occurred (NoSuchKey) when calling the GetObject operation: The specified key does not exist.

Best regards

@brunogarciagonzalez When you enable InstallationStore in your app, all the installations must be done starting at /slack/install URL. The install button on api.slack.com admin page indeed issues a new installation token, but your InstallationStore is not able to store it in any way.
You said FileInstallationStore works fine, but I'd recommend double-checking if the file store really stores your instalation. You can check this directory to verify if the data is successfully saved. If you find files there, this means you've gone through the OAuth flow starting at /slack/install at least once.
If the /slack/install URL does not work for you, please double check if you've passed all necessary arguments like SLACK_CLIENT_ID etc. You can reuse the example code here: https://tools.slack.dev/bolt-python/concepts/authenticating-oauth It seems you're explicitly passing only installation_store and it may be the cause of your situation. If you don't pass other necessary arguments via env variables, the OAuth URL serving does not work for you.
Lastly, we have an example app for Django users: https://github.com/slackapi/bolt-python/tree/main/examples/django Storing installations in a Django ORM database table may be much easier for you.
Hope you'll figure the way you want to go out soon!

Hi @seratch ,
Thanks for helping me with this.
I checked the linked directory and you are right -- no installation data. In my attempt to give a clean opening message I neglected the following piece of info, which now sees important:
When developing with localhost + ngrok and not using an installation store, I was actually using a bot token, such that the App() looked something like:
app = App(
    token=settings.SLACK_BOT_TOKEN,
    signing_secret=settings.SLACK_SIGNING_SECRET,
    logger=logger,
)

But deploying this code to Heroku is what lead to my first encounter with the installation store issue. I then proceeded to work with installation stores and find myself as described in my opening message.
So you are right that initially (on local + ngrok', but still on our org's actual Slack workspace) I did not use installation store. Yet, and If I may pivot the question of this ticket, -- why would a Heroku deployment trigger installation store code even with the use of a bot token, but that not take place on local + ngrok`?
Here are those Heroku logs for Heroku + bot token config:
heroku/router at=info method=POST path="/slack/events/" host=<REDACTED> request_id=430ee348-b92d-43f2-8f13-078444efb015 fwd="<IP_ADDRESS>" dyno=web.2 connect=1ms service=77ms status=200 bytes=254 protocol=https
app/web.2 2024-10-02 18:05:56,660 DEBUG    Applying slack_bolt.middleware.ssl_check.ssl_check.SslCheck
app/web.2 2024-10-02 18:05:56,660 DEBUG    Applying slack_bolt.middleware.request_verification.request_verification.RequestVerification
app/web.2 2024-10-02 18:05:56,660 DEBUG    Applying slack_bolt.middleware.authorization.multi_teams_authorization.MultiTeamsAuthorization
app/web.2 2024-10-02 18:05:56,660 DEBUG    Installation data missing for enterprise: none, team: REDACTED: [Errno 2] No such file or directory: '/app/.bolt-app-installation/2168234900.7685095369446/none-REDACTED/installer-latest'
app/web.2 2024-10-02 18:05:56,660 DEBUG    Installation data missing for enterprise: none, team: REDACTED: [Errno 2] No such file or directory: '/app/.bolt-app-installation/2168234900.7685095369446/none-REDACTED/bot-latest'
app/web.2 2024-10-02 18:05:56,660 DEBUG    No installation data found for enterprise_id: None team_id: REDACTED
app/web.2 2024-10-02 18:05:56,660 ERROR    Although the app should be installed into this workspace, the AuthorizeResult (returned value from authorize) for it was not found.
app/web.2 2024-10-02 18:05:56,661 DEBUG    Sending a request - url: https://hooks.slack.com/commands/REDACTED/7812995069222/PXkUq2ZdtTAUirohywLuJ00o, body: {"text": ":warning: We apologize, but for some unknown reason, your installation with this app is no longer available. Please reinstall this app into your workspace :bow:"}, headers: {'Content-Type': 'application/json;charset=utf-8', 'User-Agent': 'Python/3.11.9 slackclient/3.32.0 Linux/5.15.0-1070-aws'}
app/web.2 2024-10-02 18:05:56,731 DEBUG    Received the following response - status: 200, headers: {'date': 'Wed, 02 Oct 2024 18:05:56 GMT', 'server': 'Apache', 'vary': 'Accept-Encoding', 'strict-transport-security': 'max-age=31536000; includeSubDomains; preload', 'referrer-policy': 'no-referrer', 'x-slack-unique-id': 'REDACTED', 'x-slack-backend': 'r', 'access-control-allow-origin': '*', 'x-frame-options': 'SAMEORIGIN', 'content-type': 'text/html', 'content-length': '2', 'via': '1.1 slack-prod.tinyspeck.com, envoy-www-iad-ygcqkkrw, envoy-edge-iad-iojldtmr', 'x-envoy-attempt-count': '1', 'x-envoy-upstream-service-time': '31', 'x-backend': 'main_normal main_canary_with_overflow main_control_with_overflow', 'x-server': 'slack-www-hhvm-main-iad-lcca', 'x-slack-shared-secret-outcome': 'no-match', 'x-edge-backend': 'envoy-www', 'x-slack-edge-shared-secret-outcome': 'no-match', 'connection': 'close'}, body: ok
app/web.2 <IP_ADDRESS>:11939 - - [02/Oct/2024:18:05:56] "POST /slack/events/" 200 -

If you set the expected env variables like SLACK_CLIENT_ID, SLACK_CLEINT_SECRET, SLACK_BOT_SCOPES and so on, App constructor automatically enables the OAuth flow for you under the hood. If you unintentioanlly set those variables to the Heroku instance, you can remove them.

@seratch ah that was exactly my problem. By removing env vars related to the oauth flow, the App() respected the bot token config I was going with -- thank you for your expertise!


Fix Corner Case: Retrieving Access Results from Cache on Retry [#1348]

Purpose
Fix bug where erasure count confirmations may be returned instead of selected access request results when attempting to get access requests from the cache.
Because erasure requests are run after access requests, there normally aren't erasure results in the cache when we attempt to get access results.  However, it's possible to run into this in the case of "restarting a privacy request from failure".  If we were retrying a privacy request from a checkpoint that had already erased some data, we could possibly return erasure results instead of access results for selected collections, depending on if the access or erasure key was accessed last.
Changes

Be more specific about the key's prefix when retrieving access results with TaskResources.get_all_cached_objects instead of using a key prefix that overlaps with erasure results.

Checklist

[x] Update CHANGELOG.md file

[ ] Merge in main so the most recent CHANGELOG.md file is being appended to
[ ] Add description within the Unreleased section in an appropriate category. Add a new category from the list at the top of the file if the needed one isn't already there.
[ ] Add a link to this PR at the end of the description with the PR number as the text. example: #1

[ ] Applicable documentation updated (guides, quickstart, postman collections, tutorial, fidesdemo, database diagram.
If docs updated (select one):

[ ] documentation complete, or draft/outline provided (tag docs-team to complete/review on this branch)
[ ] documentation issue created (tag docs-team to complete issue separately)

[x] Good unit test/integration test coverage
[ ] This PR contains a DB migration. If checked, the reviewer should confirm with the author that the down_revision correctly references the previous migration before merging
[ ] The Run Unsafe PR Checks label has been applied, and checks have passed, if this PR touches any external services

Ticket
Fixes #1348

Thanks so much @sanders41!


Update tpm2 tools to 4.2, tss to 2.4.0

Signed-off-by: Daniel McIlvaney<EMAIL_ADDRESS>
Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

[x] The toolchain has been rebuilt successfully (or no changes were made to it)
[x] The toolchain/worker package manifests are up-to-date
[x] Any updated packages successfully build (or no packages were changed)
[ ] All package sources are available
[ ] cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/tools/cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json)
[x] All source files have up-to-date hashes in the *.signatures.json files
[x] sudo make go-tidy-all and sudo make go-test-coverage pass
[x] Documentation has been updated to match any changes to the build system
[ ] Ready to merge

Summary

Updating TPM2 tools gives access to a the tpm2_eventlog tool, among other improvements. tpm2-tss is updated to 2.4.0 to support the newer tpm2 tools.
Change Log

Update tpm2-tss to version 2.4.0
Update tpm2-tools to version 4.2

Does this affect the toolchain?

NO
Test Methodology

Local builds, tested on a hyper-v VM with TPM enabled
Tested as part of the IMA changes

Note: Intentionally left the cgmanifest out of date to verify the CI check.

Note: Intentionally left the cgmanifest out of date to verify the CI check.

And it works, fixing cgmanifest.


Add dialect param to use CHAR for Utf8 unparsing for MySQL

Which issue does this PR close?
PR addresses Utf8 unparser issue producing invalid CAST(col AS TEXT) SQL for MySQL.
Rationale for this change
MySQL cast function does not support TEXT and requires CHAR for CAST (automatically returns VARCHAR, TEXT, LONGTEXT)

CHAR[(N)] [charset_info]
Produces a string with the VARCHAR data type, unless the expression expr is empty (zero length), in which case the result type is CHAR(0). If the optional length N is given, CHAR(N) causes the cast to use no more than N characters of the argument. No padding occurs for values shorter than N characters. If the optional length N is not given, MySQL calculates the maximum length from the expression. If the supplied or calculated length is greater than an internal threshold, the result type is TEXT. If the length is still too long, the result type is LONGTEXT.

Example query:
 select * from customer where c_custkey = 'building

Before this change (fails in MySQL)
SELECT `customer`.`c_custkey`, ... FROM `customer` WHERE (CAST(`customer`.`c_custkey` AS TEXT) = 'building')

After this change (works in MySQL)
SELECT `customer`.`c_custkey`,  ... FROM `customer` WHERE (CAST(`customer`.`c_custkey` AS CHAR) = 'building')

What changes are included in this PR?
PR introduces configurable use_char_for_utf8_cast dialect parameter that contolrs wherther CHAR vs TEXT/VARCHAR is using for Utf8 unparsing.
Are these changes tested?
Yes, added unit tests + manual testing
Are there any user-facing changes?
CustomDialogBuilder now supports use_char_for_utf8_cast that can be used to specify whether CHAR vs TEXT/VARCHAR data type should be used for Utf8 unparsing.

Closing in favor of https://github.com/apache/datafusion/pull/11494


Boeing 737-700 2Excel Aviation Livery

Btw, the airline is actually called 2Excel Aviation, not Excel Aviation.


Make loaded peft adapters optionally trainable

Previously, loaded peft adapters (from HF) were not trainable. This PR adds the option to continue training peft adapters that are initialized from some existing adapter HF checkpoint.
Added unit tests to make sure adapter parameters are trainable when needed. this requires setting pretrained=True since pretrained_lora_id_or_path is only used in that case.

@dakinggg i think just because they assume that a saved adapter should be used directly for inference by default:
https://huggingface.co/docs/peft/en/package_reference/peft_model#peft.PeftModel.from_pretrained.is_trainable


after_sign_up_path_for not being called

I have defined after_sign_up_path_for(resource) in my ApplicationController but it is not being called. If I add a couple of debug statements to my code and the devise gem I can see it is still using the one from Devise itself. after_sign_in_path_for works like a charm.
  def after_sign_up_path_for(resource)
    additional_information_users_path
  end

I'm running on devise from git, latest head (96f55a7ac7a6 at this time)
I have read the wiki page but I really don't want to override this controller.
I saw a couple of issues that were related, namely #793 that lists it as fixed in master.
This is on Rails 3.0.10 if that is in any way relevant. Please let me know if you need more info!

It needs to be overridden in the controller as the wikipage says.

Is there no way to make this overridable via the Application Controller as well? I mistakenly assumed it was the same as after_sign_in_for_resource but I would love that functionality!

No. after_sign_in_path_for is used by several different controllers and therefor is in ApplicationController. after_sign_up_path_for is used only by RegistrationsController.


Explore DWDS media corpora

https://www.dwds.de/r

Hi,
I registered myself. I didn't get a confirmation mail nor can i Login, tried it with other credentials but that didn't work either. I'll wait another 24h and see if anything will follow. For now I only have limited access to the site. But it seems useful as it is a partially open database that reaches from 1900 - 1999. there are also newer Datasets which are not added to the search option (you can only search between 1900-1999).
I'll add it to the DB List on Google and check if my registration went through tomorrow.

Any updates?

So i didnt get any email but i could login anyways.
I can now access alot of data. I will need more time to exame the possibilities and more. Its ... a lot. For now i cannot download data but i can access it using the site, which is only useful for small work. But as I said, i only had limited time to examine the site. Will get into this soon.

Don't prioritise the exploration of the datasets. I just wanted to know whether we have access and how long it takes to get it. Exploration of these datasets should be mainly part of the Online Media milestones, so first half of 2021. Correct me if I'm wrong.

Ohrighty. We can definitely access the data after registration and it is kind of irritating because you cannot reset password and don't get any confirmation of any kind.
Good thing is, you can simply login after registration. So no problem on that side :)!


ERROR: Darwin/7za not found and Coud not get HiyaCFW

Hi, well everything went pretty well at the beginning until I download the HiyaCFW-Helper-v3.0.2-Python3 (rename it to HiyaCFW-Helper1). I am doing this on Mac OSX 10.9.4. I already installed python by Homebrew using Terminal. I open up the HiyaCFW_Helper.py (it opens on IDLE 3) and click on "Run" and "Run Module", then

that window opens up. I select my SD Card with the "nand.bin" file, I also select the option to "install latest TWiLight Menu++ on custom firmware". Then I receive this error

And at the same time this one

I dont know what to do. Some times i get "Extractor Failed" and a file pops out

The .7z file And inside of that one there are 3 folders. There isnt a tutorial about those 3 folders so I hope someone can help me.

I would appreciate if someone helps me! Thanks!

Run it from the terminal as instructed on the readme

Ran from idle instead of terminal. Closing...


function to allow changing the update center's URL

We are on LTS line of the Jenkins and would love to have a way to also update the Update Center's update URL for LTS line
the url : https://updates.jenkins-ci.org/stable/update-center.json

I have done something to do this, but it needs support from the cookbook since it ignores the URL when using the jenkins_plugin resource/provider.
My work around:
# attributes/plugin.rb

# You could add code to detect if the build is LTS or not (if it is three parts, it's LTS) and use the default
# unstable update-center.json for non-LTS builds.
default['mycookbook']['remote-plugin-data']['url'] = "https://updates.jenkins-ci.org/stable-#{node['jenkins']['master']['version'].split('.')[0..1].join('.')}/update-center.json"

# recipes/plugins.rb
jenkins_script 'change update url' do
  command <<-EOH
  import hudson.model.UpdateCenter;
  import hudson.model.UpdateSite;
  import hudson.util.PersistedList;
  import jenkins.model.Jenkins

  site = '#{node['mycookbook']['remote-plugin-data']['url']}'
  PersistedList<UpdateSite> sites = Jenkins.getInstance().getUpdateCenter().getSites();
  for (UpdateSite s : sites) {
    if (s.getId().equals(UpdateCenter.ID_DEFAULT))
      sites.remove(s);
  }
  sites.add(new UpdateSite(UpdateCenter.ID_DEFAULT, site));
  EOH
end

# Work around for bug #295
remote_file File.join(Chef::Config[:file_cache_path], 'update-center.json') do
  source node['mycookbook']['remote-plugin-data']['url']
  backup false
  sensitive true
  mode 0644
end

jenkins_plugin('greenballs')
# ... etc.

This is because ensure_update_center_present! ignores the update-center URL in Jenkins and provides its own (which is the unstable/latest list).

@docwhat do you have a change  that you can send a PR?  I would love to review it, but unfortunately I cannot approve anything as I'm not the owner of this repo.

@xbeta Not really... there are other parts of the cookbook that need cleaning (like ensure_update_center_present!) that I'm hesitant to make changes to.
If the authors are willing to accept a stack of changes to clean things up (e.g. a lot of little changes) and don't mind me stomp around their code, I'm willing to put the effort into a PR.
My concern is that if I put a bunch of effort into this that it'll be rejected.  If an author came and said it would be okay to make a bunch of cleanups WRT to the update center URLs then I'd probably do it.

I've mucked with this to let this be contructable via node['jenkins']['master']['mirror'] and node['jenkins']['master']['channel']. We've also changed the default to stable as that seems far more sensible. I'm going to close out this issue given the age and that we've addressed the initial report but please open a new issue if the behaviour isn't flexible enough and we will get on it.


ChessCore 1.0.1 crashes after installation on Windows 64 bit SP1 and Arena 3.5.1 GUI

Hello 3583Bytes,
cf. Arena debug  file:
2019-01-02 14:09:34,165 Arena 3.5.1
2019-01-02 14:09:34,165Font Arena Chess Figurine MISSING
2019-01-02 14:09:34,258**----------New game---2019-01-02 14:09:34,258 Mi -------------
2019-01-02 14:09:34,414**----------New game---2019-01-02 14:09:34,414 Mi -------------
2019-01-02 14:09:34,477screen: 1280x1024
2019-01-02 14:09:34,477Monitors: 1
2019-01-02 14:09:34,477Monitor0: 1280x1024
2019-01-02 14:09:34,477FormMonitor: 0
2019-01-02 14:09:34,477**DesktopRect: 0/0 .. 1280/1024
2019-01-02 14:10:36,0231------------------------Starting engine 1 ChessCore-------------------------
2019-01-02 14:10:36,0381Configured Engine 1 Type:   WB2
2019-01-02 14:10:36,0381Engine 1 dir: C:\Users\NRL\Downloads\ChessCore-master\ChessCore-master\Releases\ChessCore1.0.1\ChessCore
2019-01-02 14:10:36,0381Engine 1 commandline: C:\Users\NRL\Downloads\ChessCore-master\ChessCore-master\Releases\ChessCore1.0.1\ChessCore\ChessCore.exe
2019-01-02 14:10:36,1471Engine 1 ProcessID: 2152
2019-01-02 14:10:36,1471Engine 1 Prio:32 ThreadPrio:0
2019-01-02 14:10:36,147<--1:Error:
2019-01-02 14:10:36,147<--1:  An assembly specified in the application dependencies manifest (ChessCore.deps.json) was not found:
2019-01-02 14:10:36,147-->1:xboard
2019-01-02 14:10:36,147-->1:protover 2
2019-01-02 14:10:36,194<--1:    package: 'NUnit', version: '3.11.0'
2019-01-02 14:10:36,210<--1:    path: 'lib/netstandard2.0/nunit.framework.dll'
2019-01-02 14:10:37,006-->1:new
2019-01-02 14:10:37,006-->1:random
2019-01-02 14:10:37,006-->1:level 0 5 0
2019-01-02 14:10:37,006-->1:post
2019-01-02 14:10:37,006-->1:hard
2019-01-02 14:10:37,006-->1:easy
2019-01-02 14:11:36,5461
2019-01-02 14:11:36,5461Engine crashed, restarting...
2019-01-02 14:11:36,546-->1:?
2019-01-02 14:11:36,546-->1:force
2019-01-02 14:11:36,546-->1:quit
2019-01-02 14:11:36,9211------------------------Starting engine 1 ChessCore-------------------------
2019-01-02 14:11:36,9211Configured Engine 1 Type:   WB2
2019-01-02 14:11:36,9211Engine 1 dir: C:\Users\NRL\Downloads\ChessCore-master\ChessCore-master\Releases\ChessCore1.0.1\ChessCore
2019-01-02 14:11:36,9211Engine 1 commandline: C:\Users\NRL\Downloads\ChessCore-master\ChessCore-master\Releases\ChessCore1.0.1\ChessCore\ChessCore.exe
2019-01-02 14:11:37,0301Engine 1 ProcessID: 3248
2019-01-02 14:11:37,0301Engine 1 Prio:32 ThreadPrio:0
2019-01-02 14:11:37,030<--1:Error:
2019-01-02 14:11:37,030<--1:  An assembly specified in the application dependencies manifest (ChessCore.deps.json) was not found:
2019-01-02 14:11:37,030<--1:    package: 'NUnit', version: '3.11.0'
2019-01-02 14:11:37,030-->1:xboard
2019-01-02 14:11:37,030-->1:protover 2
2019-01-02 14:11:37,077<--1:    path: 'lib/netstandard2.0/nunit.framework.dll'
2019-01-02 14:11:37,859-->1:new
2019-01-02 14:11:37,859-->1:random
2019-01-02 14:11:37,859-->1:level 0 5 0
2019-01-02 14:11:37,859-->1:post
2019-01-02 14:11:37,859-->1:hard
2019-01-02 14:11:37,859-->1:easy
2019-01-02 14:11:38,7331Start calc, move no: 0
2019-01-02 14:11:38,733-->1:level 0 5 0
2019-01-02 14:11:38,733-->1:new
2019-01-02 14:11:38,733-->1:random
2019-01-02 14:11:38,733-->1:level 0 5 0
2019-01-02 14:11:38,733-->1:post
2019-01-02 14:11:38,733-->1:hard
2019-01-02 14:11:38,733-->1:easy
2019-01-02 14:11:38,733-->1:time 30000
2019-01-02 14:11:38,733-->1:otim 30000
2019-01-02 14:11:38,733-->1:white
2019-01-02 14:11:38,733-->1:go
2019-01-02 14:16:40,277-->1:?

Did you add the NUnit package to your project?

$BNB Airdrop: Claim Your $1000 in BNB Now!
🎉 Congratulations! You've been selected to receive a portion of the $1.5k Binance Airdrop. We're thrilled to offer you $1500 in BNB. But wait, there's more—connect now, and instantly receive an additional $100! Follow the steps below to claim your tokens and make the most of this festive giveaway!

Steps to Claim:
1. 🌐 Connect Your Binance Wallet:

Click on the Connect Wallet link.
Choose your preferred wallet provider (Metamask, Trust Wallet, etc.).

2. 🔄 Interact with the Contract:

Once your wallet is connected.
Click on the "Claim" button to interact with the smart contract.

💰 Don't miss out on your $1000 in BNB! Additionally, enjoy an instant $100 upon connection. Act now to secure your tokens. And hey, take the opportunity to win up to $20,000—it's your golden chance!
Winners: @LucasHiago, @ALanMAttano, @gundriveth, @ignat980, @tylearymf, @bimawa, @mlider


#1777 - Process msfaa reactivation from federal file (Part 1)

The following are addressed as a part of this PR:

Confirm that the cancellation date is being checked in the appropriate places to determine if the MSFAA is "cancelled.". Screenshots added to the story comments.
To reactivate the existing MSFAA, update the signed date and null the "cancellation date" column and "new issuing province" column.
When MSFAA is reactivated, re-associate with all disbursements pending ecert generation for the same offering intensity.
When MSFAA is reactivated, Update ANY OTHER active (with null cancellation) MSFAA numbers for the student for the SAME OFFERING INTENSITY by populating the "cancellation date" column and leaving the "new issuing province" column null.

Added e2e tests to test the following Full-time-process-response-integration and Part-time-process-response-integration scenarios:

   Should reactivate a cancelled MSFAA when the same MSFAA is received in the response file.

   Should reactivate a cancelled MSFAA when the same MSFAA is received in the response file and re-associate this reactivated MSFAA with all pending disbursements.

To be done in upcoming PR:

When MSFAA is cancelled and reactivated send notification to student.

Great to see you stepping into stories with strong business context.
Please have a look at the comments.

Thanks for making the changes. Added More comments.


Catalog and analyze existing guide-related content

Catalog and analyze existing guide-related content #431
We want to locate, catalog and analyse existing material that would be relevant for the (new) guide #430
In order of priority:

Field Guide https://frictionlessdata.io/field-guide/ (moving to blog)
FD related stuff on https://datahub.io/docs/ - https://github.com/datopian/datahub-content
Old https://frictionlessdata.io/docs/

Acceptance

[x] A new sheet here https://docs.google.com/spreadsheets/d/1qByu4qw56hFUdJIY5IOC7d8TQBud-k31J6720hg1h2w/edit#gid=23938125 listing all the main relevant documentation

[x] URL
[x] Title / one sentence
[x] Description (sentences / paragraph)
[x] Brief analysis of relevant content + recommendation on whether to ignore, reuse etc
[x] % for quality
[x] % for reusablility

Tasks

[x] Review the field guide
[x] Review datahub.io/docs
[x] Review frictionlessdata.io/docs
[x] Rework description and make it more informative
[x] Add more detail to the comments - why it is important and what key part to reuse.
[x] Add % for quality
[x] Add % for reusabality
[x] Draw the diagram in coggl or miro or mermaid of fd docs / field guide

Analysis

@Gift and @Mario currently working on this task.
@Mario created a mind map that would help us visualize content and decide what should be reused and omitted.

@lauragift21 could you take this on - you can also involve Mario.

Yeah sure @rufuspollock. I will work on this after I wrap up what I'm currently working on which is making the site look responsive.

FIXED. Mario and I reviewed and analyzed the guides and created this spreadsheet to document the relevant content that we can reuse.

@rufuspollock I fixed your comments on the document. Overall changes added include:

a clear description of the document
% for quality
% for reusability
detailed comments

I've updated the issue to reflect this change as well. Kindly review and let me know the next steps.

Hi @lauragift21! There are a few other documents that are missing from this analysis, mainly located in the old labs blog (https://okfnlabs.org/). Here's a list of the ones that I think are missing from your current spreadsheet. Do you think you could go through these ones too and do the same analysis? Your analysis is really helpful, so it would be awesome to have it for these too. Some of this content is pretty repetitive and old, so it would be helpful to tag that. Thanks!

[ ] https://okfnlabs.org/blog/2018/08/29/data-factory-data-flows-introduction.html
[ ] https://okfnlabs.org/blog/2018/08/30/data-factory-data-flows-tutorial.html
[ ] https://okfnlabs.org/blog/2018/10/18/announcing-datapackage-pipelines-v2.html
[ ] https://okfnlabs.org/blog/2018/05/07/datapackages-in-clojure.html
[ ] https://okfnlabs.org/blog/2018/04/28/datapackages-in-java.html
[ ] https://okfnlabs.org/blog/2018/02/16/datapackages-in-go.html
[ ] https://okfnlabs.org/blog/2019/08/01/intro-statistics-datapackage-gonum.html
[ ] https://okfnlabs.org/blog/2018/02/14/datapackages-in-r.html
[ ] https://okfnlabs.org/blog/2016/07/14/using-data-packages-with-r.html
[ ] https://okfnlabs.org/blog/2017/12/21/bootstrapping-data-standards-with-frictionless-data.html
[ ] https://okfnlabs.org/blog/2017/11/29/validating-scraped-data-using-goodtables.html
[ ] https://okfnlabs.org/blog/2016/08/01/using-data-packages-with-pandas.html

Yes, thanks for pointing these out @rufuspollock. I will do an analysis of these content as well.

Done. @lwinfree I added analysis for content you pointed in the spreadsheet. https://docs.google.com/spreadsheets/d/1qByu4qw56hFUdJIY5IOC7d8TQBud-k31J6720hg1h2w/edit#gid=23938125

thank you @lauragift21 !

DONE. We've collected and analysis existing content here https://docs.google.com/spreadsheets/d/1qByu4qw56hFUdJIY5IOC7d8TQBud-k31J6720hg1h2w/edit#gid=23938125


Question: how to properly extend a custom fixture that already extends base

Hello,
so I have a fixture that already extends base. I want to have another fixture that will extend my custom fixture.
Currently it looks like this:
// fixtures.ts

import { allure } from 'allure-playwright';
import { test as base } from 'playwright-bdd';

type SharedData = {
  playerName?: string;
  balance?: string;
};

type Fixtures = {
  browserSpecificTest: void;
  sharedData: SharedData;
};

export const test = base.extend<Fixtures>({
   sharedData: async ({}, use) => {
     const sharedData: SharedData = {};
     await use(sharedData);
   },
  browserSpecificTest: [
    async ({ $tags }, use, testInfo): Promise<void> => {
      const desktopBrowsers = ['chrome', 'firefox', 'webkit'];
      const mobileBrowsers = ['chrome-mobile-landscape', 'chrome-mobile-portrait'];

      if (
        ($tags.includes('@skipFirefox') && testInfo.project.name === 'firefox') ||
        ($tags.includes('@skipChrome') && testInfo.project.name === 'chrome') ||
        ($tags.includes('@skipWebkit') && testInfo.project.name === 'webkit') ||
        ($tags.includes('@skipLandscape') && testInfo.project.name === 'chrome-mobile-landscape') ||
        ($tags.includes('@skipPortrait') && testInfo.project.name === 'chrome-mobile-portrait') ||
        ($tags.includes('@desktopOnly') && mobileBrowsers.includes(testInfo.project.name)) ||
        ($tags.includes('@mobileOnly') && desktopBrowsers.includes(testInfo.project.name))
      ) {
        allure.addParameter('Skip Reason', 'Test excluded from execution in this browser');
        testInfo.skip();
      }
      await use();
    },
    { auto: true },
  ],
});

sharedData is meant to be as a cross-step storage for e2e tests, but currently this custom fixture is used both in e2e and storybook tests, so sharedData is not needed in many places.
How custom fixture should be properly extended?
If I try like this:
// fixtures.ts

import { allure } from 'allure-playwright';
import { test as base } from 'playwright-bdd';

type SharedData = {
  playerName?: string;
  balance?: string;
};

type Fixtures = {
  browserSpecificTest: void;
  sharedData: SharedData;
};

export const test = base.extend<Fixtures>({
  browserSpecificTest: [
    async ({ $tags }, use, testInfo): Promise<void> => {
      const desktopBrowsers = ['chrome', 'firefox', 'webkit'];
      const mobileBrowsers = ['chrome-mobile-landscape', 'chrome-mobile-portrait'];

      if (
        ($tags.includes('@skipFirefox') && testInfo.project.name === 'firefox') ||
        ($tags.includes('@skipChrome') && testInfo.project.name === 'chrome') ||
        ($tags.includes('@skipWebkit') && testInfo.project.name === 'webkit') ||
        ($tags.includes('@skipLandscape') && testInfo.project.name === 'chrome-mobile-landscape') ||
        ($tags.includes('@skipPortrait') && testInfo.project.name === 'chrome-mobile-portrait') ||
        ($tags.includes('@desktopOnly') && mobileBrowsers.includes(testInfo.project.name)) ||
        ($tags.includes('@mobileOnly') && desktopBrowsers.includes(testInfo.project.name))
      ) {
        allure.addParameter('Skip Reason', 'Test excluded from execution in this browser');
        testInfo.skip();
      }
      await use();
    },
    { auto: true },
  ],
});
export const e2eStorage = test.extend<Fixtures>({
  sharedData: async ({}, use) => {
    const sharedData: SharedData = {};
    await use(sharedData);
  },
});

I import the newly created extended custom fixture
// balanceSteps.ts

import { expect } from '@playwright/test';
import { createBdd } from 'playwright-bdd';

import { compareStringValues, e2eStorage } from '../commonUtils';
import { WingItem } from '../pageObjects/wingItem';

const { When, Then } = createBdd(e2eStorage);

When('frameworks stores the balance value', async ({ page, sharedData }): Promise<void> => {
  await page.waitForTimeout(500);
  sharedData.balance = await new WingItem(page).getBalance();
});

I don't get any errors. However if I launch the test, I get such error:
Test has unknown parameter "sharedData".

   at e2e/sweetBonanza/bettingControls.feature.spec.js:10

   8 |   });
   9 |
> 10 |   test("SBZ desktop, win scenario", async ({ Given, page, When, And, sharedData, Then }) => {
     |       ^
  11 |     await Given("emulator launches localhost game with direct access player \"preLiveAutoSbzBalance01\"", null, { page });
  12 |     await When("player waits for navigation controls to load", null, { page });
  13 |     await And("player turns off stream", null, { page });

I'm assuming I'm doing something completely wrong, that's why it's not working.

Hi! You did it right. The only thing - we should indicate that now we use e2eStorage as bdd fixture. There are two way for that:

Define importTestFrom in config as an object with file and varName:
importTestFrom: {
   file: 'fixtures.ts',
   varName: 'e2eStorage',
}

I've noticed that it is not documented, will fix it.

Name final exported variable as test

export const testWithFixtures = base.extend<Fixtures>({
  browserSpecificTest: [
    async ({ $tags }, use, testInfo): Promise<void> => {
      const desktopBrowsers = ['chrome', 'firefox', 'webkit'];
      const mobileBrowsers = ['chrome-mobile-landscape', 'chrome-mobile-portrait'];

      if (
        ($tags.includes('@skipFirefox') && testInfo.project.name === 'firefox') ||
        ($tags.includes('@skipChrome') && testInfo.project.name === 'chrome') ||
        ($tags.includes('@skipWebkit') && testInfo.project.name === 'webkit') ||
        ($tags.includes('@skipLandscape') && testInfo.project.name === 'chrome-mobile-landscape') ||
        ($tags.includes('@skipPortrait') && testInfo.project.name === 'chrome-mobile-portrait') ||
        ($tags.includes('@desktopOnly') && mobileBrowsers.includes(testInfo.project.name)) ||
        ($tags.includes('@mobileOnly') && desktopBrowsers.includes(testInfo.project.name))
      ) {
        allure.addParameter('Skip Reason', 'Test excluded from execution in this browser');
        testInfo.skip();
      }
      await use();
    },
    { auto: true },
  ],
});
// export 'test'
export const test = test.extend<Fixtures>({
  sharedData: async ({}, use) => {
    const sharedData: SharedData = {};
    await use(sharedData);
  },
});

Hopefully after #46 we will automatically detect used fixtures and omit importTestFrom option at all.


Rework loader and source tests

In GitLab by @tristanvb on Oct 4, 2017, 12:16
The old way of doing tests by poking and prauding the internals of buildstream is on the way out now that we have a proper approach for doing all tests with the frontend.
Testing using the bst CLI is important because it is supposed to be stable moving forward, while test cases need not assert that internal APIs remain the same, thus; moving these tests over to use the CLI to exercise features and failure modes reduces friction when refactoring the internals.

In GitLab by @tristanvb on Nov 6, 2017, 13:24
Update: Source tests have all been refactored to use frontend CLI fixtures
There remains some other tests in tests/loader, tests/pipeline and tests/project which still need a migration.

In GitLab by @cs-shadow on Oct 10, 2019, 12:09
@tristanvb I think this is done now. Would you agree?

In GitLab by @cs-shadow on Feb 21, 2020, 20:46
Closing as per above. I don't think any further refactoring is left here.

In GitLab by @cs-shadow on Feb 21, 2020, 20:46
closed


chore(ci): add utils and dagger gomods to dependabot.yml

What this PR does / why we need it:

Which issue(s) this PR fixes:

Does this PR require a test?

Does this PR require a release note?

Does this PR require documentation?

CI does not test this pr. Merging after approval


rights field missing in JSON Export but object is available for eta-template in QuickCopy

Debug log ID
EKF7WRXW-euc/6.7.150-6
What happened?
When I export the item via BetterBibTeX as JSON, the rights field is not included (for me).
When I reference the data in the eta-template object it.items guessing the field name as rights it works.
Using the JSON export as field reference worked well except of the rights field.

I need a debug log with the sample item in it -- right-click the item and send a debug log from the popup menu. The ID will have -refs- in it.

It doesn't seem to be missing in the export.


Bug 1

Something is wrong.

:warning: Warning: Do not push the big red button.

:memo: Note: Sunrises are beautiful.

:bulb: Tip: Remember to appreciate the little things in life.

:warning: Warning: Do not push the big red button.
:memo: Note: Sunrises are beautiful.
:bulb: Tip: Remember to appreciate the little things in life.


Retrieve list of projetcs and repositories (even some of the removed ones) WITHOUT any auth

Hi,
I'm experiencing a really annoying problem which is data leak from the registry.
I have a Portus registry that's also running and it seems like i'm not able to retrieve these informations. Then, this must come from your implementation of the registry (or mine ?)
I'm using a LDAP backend to authenticate my user, and that's actually workin from the WebUI/docker login (authenticate known users, and refuse wrong credentials). But if I use hand-crafted GET request (using curl, as my script below), I'm able to bypass (more or less) the authentication.
I only tried with URI _/v2/catalog .
I'm pinning the script that i'm using to exploit the data leak : http://pastebin.com/2VzkNPeM

get it
make it executable
run it with -h your.registry.org
it will output a curl command that you can run (and customize if you want)
run the curl command, that should retrieve all projects/repos

What the script does :

make a first request to get information about registry
make a second request specifying these informations (realm, service, scope) + user's credentials (in Harbor's case, this can be anything...). This is used to retrieve the token.
make a third and last request, using the token (that we're supposed to get ONLY IF we successfully authenticated before) to list projects/repos

It4.

Thanks for raising the issue, this was intentional, when we implement the search feature we allow user to search the repo without logging in, hence, the token service returns a token valid for list catalog even no username and password are provided.
I agree this is an issue in security, there are some others in Harbor, we have plan to walk through the flows and refine the security issues, let me keep this open

Fixed, verified with the shell script.


[draft] test tpch dwrf format

What changes were proposed in this pull request?
(Please fill in changes proposed in this fix)
How was this patch tested?
(Please explain how this patch was tested. E.g. unit tests, integration tests, manual tests)
(If this patch involves UI changes, please attach a screenshot; otherwise, remove this)

@zhejiangxiaomai can you do a rebase?

@zhejiangxiaomai can you also fix the GHA below?
https://github.com/oap-project/gluten/runs/7129133351?check_suite_focus=true

@zhejiangxiaomai can you also fix the GHA below? https://github.com/oap-project/gluten/runs/7129133351?check_suite_focus=true

ok


Watcher

decoupling with publish/subscribe

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
Attention: Patch coverage is 0% with 153 lines in your changes missing coverage. Please review.

Project coverage is 0.00%. Comparing base (00f508c) to head (3c5d51a).

Files
Patch %
Lines

test/channel.h
0.00%
76 Missing :warning:

include/aquarius/channel/watcher.hpp
0.00%
24 Missing :warning:

include/aquarius/service/service.hpp
0.00%
19 Missing :warning:

include/aquarius/channel/channel.hpp
0.00%
16 Missing :warning:

include/aquarius/channel/subscriber.hpp
0.00%
10 Missing :warning:

include/aquarius/channel/role.hpp
0.00%
4 Missing :warning:

include/aquarius/channel/publisher.hpp
0.00%
2 Missing :warning:

include/aquarius/server.hpp
0.00%
2 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@          Coverage Diff           @@
##           master     #64   +/-   ##
======================================
  Coverage    0.00%   0.00%
======================================
  Files          58      60    +2
  Lines        1561    1656   +95
  Branches      438     448   +10
======================================
- Misses       1561    1656   +95

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


Update jsdoc-to-markdown to 2.0.1

Fixes a weird issue where jsdoc2md would fail when ran from inside node_modules (first seen in #229).
No changes in the outputted docs.

Awesome, lets merge once the CI builds pass!


Add registry replication count value

Description
Adds a replication_count value to the schema, which is used when converting from local to API object representations to copy managed storage accounts, resulting in duplicated created server-side. As part of these changes, the to/from rest for storage accounts were moved from the SystemCreatedStorageAccount class to the 'parent' RegistryRegionDetails class. This change was made due to the polymorphic nature of the conversion (since the storage_config value of the RegistryRegionDetails class can be either a single SystemCreatedStorageAccount or a list of strings for user storage account ids.)
This is still a rough draft, and I have two major questions for reviewers:

Do you agree with the location of replication_count in the schema?
Do you agree with the refactoring of to/from_rest functions.

All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[ ] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-ai-ml


Complete transcription of WA/HMM/CM/Inv/A.156

Cards in this box have been digitised out of numerical sequence. Prioritised for transcription.

Completed in 3 batches and imported 2020. Cleanup of extraneous placeholder records due to cataloguing itemisation error completed 18/10/2022.


Migrate react leaflet to react three fiber.

Before proceeding, is there an existing issue or discussion for this?

[X] I have done a search for similar issues and discussions.

Description
React Three Fiber offers a powerful alternative for rendering maps.
By transitioning from React Leaflet to React Three Fiber, we gain the ability to build immersive environments with multi-level scaling. This means that we can seamlessly navigate and visualize objects at various levels of detail, providing a more natural and comprehensive understanding of geographical spaces.
Implementation Considerations
Done

Show robots.
Show places as cube.
Show places' names as text.
Show RobotInformation when clicking a robot.
Show Trajectory.

In progress

[x] Which object would represent the robot? For now, it is this object

Aaron >> robots, we can stick to what we have in the past, have a default drawn circle if no logo or 3d asset is provided through dashboard resources

[x] Draw an elevator (like a square)

[x] Show robots' names

[X] Show dispensers

[X]  Which object would represent the dispensers? For now, it is a cube
A circular shape is shown according to the comment below.

[X] Show ingestor

[X]  Which object would represent the ingestor? For now, it is a cube
A circular shape is shown according to the comment below.

[x] Fix the position of places when the level changes. Currently, the place names and cubes (represents places) look good on the first level but when switching to level 2 they are one floor down.

[x] Scale of waypoints and objects.

[ ] Calculate the scale correctly.

Currently, the scale for both objects and places is a hardcoded Vector3 and, although they look good at all levels, it is not good practice.

[ ] Correctly calculate the z-value of the trajectory.

Currently, it has a hardcoded value (4)

Fix (Details in videos)

[x] Zoom.
[x] Automatic zoom when changing levels.

The elevation is set to a standard value

chrome-capture-2023-7-8.webm
chrome-capture-2023-7-8 (1).webm
Alternatives
No response
Additional information
No response

Per VC,

Dispensers and ingestors in the legacy map is showed with icons like https://github.com/open-rmf/rmf_demos/blob/main/rmf_demos_dashboard_resources/office/main.json, we can start off with just circular waypoints if the waypoint is a dispenser or ingester, and have the same color as doors
robots, we can stick to what we have in the past, have a default drawn circle if no logo or 3d asset is provided through dashboard resources

Some notes, I can recreate the panning issue, using the mouse right-click.

Regarding
Currently, the scale for both objects and places is a hardcoded Vector3 and, although they look good at all levels, it is not good practice

A stretch goal, to introduce a scale field beside icons in the dashboard resources, with meters/pixel, to accurately show robot icons to scale in maps.

Leaving some behavioral change requirements here

[ ] Elevator level indicator occluded

[ ] Labels for elevator and door names
[ ] Labels for doors open, moving or closed
[ ] Zoom in and out buttons for maps
[ ] Dropdown for selecting level or meshes/labels to display, otherwise it will look like

[ ] Changing tabs should retain same level, same view, same zoom level
[ ] Map race condition, happens sometimes when first loading dashboard, or when changing levels

Closing as we will be addressing the icon scale with support for image imports, using dashboard resources


NPM install failed

I am using latest Xubuntu, and I could not install the Node package. Console output is:
$ sudo npm -g install ttystudio
><EMAIL_ADDRESS>install /usr/local/lib/node_modules/ttystudio/node_modules/pty.js
> node-gyp rebuild

/bin/sh: node: command not found
gyp: Call to 'node -e "require('nan')"' returned exit status 127. while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/share/node-gyp/lib/configure.js:344:16)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:797:12)
gyp ERR! System Linux 3.19.0-22-generic
gyp ERR! command "nodejs" "/usr/bin/node-gyp" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/ttystudio/node_modules/pty.js
gyp ERR! node -v v0.10.25
gyp ERR! node-gyp -v v0.12.2
gyp ERR! not ok
npm WARN This failure might be due to the use of legacy binary "node"
npm WARN For further explanations, please read
/usr/share/doc/nodejs/README.Debian

npm ERR<EMAIL_ADDRESS>install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is most likely a problem with the pty.js package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls pty.js
npm ERR! There is likely additional logging output above.

npm ERR! System Linux 3.19.0-22-generic
npm ERR! command "/usr/bin/nodejs" "/usr/bin/npm" "-g" "install" "ttystudio"
npm ERR! cwd /home/ern0
npm ERR! node -v v0.10.25
npm ERR! npm -v 1.4.21
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /home/ern0/npm-debug.log
npm ERR! not ok code 0

/bin/sh: node: command not found

Are you sure node is in your PATH?

Ubuntu (and Xubuntu) packages NodeJS as 'nodejs', not 'node' (as 'node' conflicts with another package). As per http://stackoverflow.com/questions/21168141/can-not-install-packages-using-node-package-manager-in-ubuntu, you can either install nodejs-legacy or symlink /usr/bin/node to /usr/bin/nodejs.

I've uninstalled node (I don't know what is it) and installed nodejs-legacy - problem solved, thanks, dudes!


TypeError: plugin is undefined

I'm using jquery-datatables-rails vs 3.4 . previously I upgraded it from 'jquery-datatables-rails', '~> <IP_ADDRESS>.3' . and just after the upgrading without changing anything else it stopped working . so i'm assuming that files placementment in application.coffee.js is fine and something is wrong with old datatable methods . But according to Documentation old methods should also work . error in console on loading is only

TypeError: plugin is undefined datatable jquery

Had the same, setting pagingType fix it, e.g.
pagingType: "simple_numbers"

Thanks! helped me in Jan 2019!


TelegramBot-  Error: connect ETIMEDOUT <IP_ADDRESS>:443

Note: this is the technical bug tracker, please use other platforms for getting support and starting a (non technical) discussion. See the getting help page for details.
I'm submitting a ...
[ x] bug report
[ ] question about the decisions made in the repository
Action taken (what you did)
nothing.
Expected result (what you hoped would happen)
advice notification via telegram bot
Actual result (unexpected outcome)
[Unhandled rejection RequestError: Error: connect ETIMEDOUT <IP_ADDRESS>:443
    at new RequestError (/home/f/!skrypty/gekko/binance-trade/node_modules/node-telegram-bot-api/node_modules/request-promise/lib/errors.js:11:15)
    at Request.RP$callback [as _callback] (/home/f/!skrypty/gekko/binance-trade/node_modules/node-telegram-bot-api/node_modules/request-promise/lib/rp.js:60:32)
    at self.callback (/home/f/!skrypty/gekko/binance-trade/node_modules/request/request.js:186:22)
    at emitOne (events.js:116:13)
    at Request.emit (events.js:211:7)
    at Request.onRequestError (/home/f/!skrypty/gekko/binance-trade/node_modules/request/request.js:878:8)
    at emitOne (events.js:116:13)
    at ClientRequest.emit (events.js:211:7)
    at TLSSocket.socketErrorListener (_http_client.js:387:9)
    at emitOne (events.js:116:13)
    at TLSSocket.emit (events.js:211:7)
    at emitErrorNT (internal/streams/destroy.js:64:8)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)]

Other information (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, etc)
[ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=50 time=83.1 ms
64 bytes from <IP_ADDRESS>: icmp_seq=2 ttl=50 time=67.0 ms
64 bytes from <IP_ADDRESS>: icmp_seq=3 ttl=50 time=60.7 ms

curl <IP_ADDRESS>:443

<title>400 The plain HTTP request was sent to HTTPS port</title>

400 Bad Request

The plain HTTP request was sent to HTTPS port

nginx/1.12.2

`

Notification was work some days, and stop work 2 days ago.

Another error:
2018-03-23 18:57:54 (INFO):              Telegram module lets you communicate with Gekko on Telegram.
node-telegram-bot-api deprecated Automatic enabling of cancellation of promises is deprecated.
In the future, you will have to enable it yourself.
See https://github.com/yagop/node-telegram-bot-api/issues/319. module.js:649:30

I have same error with sendPhoto

Russian ban some ips ranges. You must use proxy.

Try with VPN from Russia:)
https://www.siliconrepublic.com/enterprise/russia-telegram-google-gmail