Avoiding repetitions

Hi,
I'm wondering, is there is any simple ways to prevent the bot from repeating itself too much?
Maybe : keeping a record of the two or three previous exchanges and returning an output that could be a bit less appropriate if the most appropriate has been returned too recently… What do you think?
Amazing work, btw! :+1:

I agree with this. There is currently a recent_statements variable which I added so that this could eventually be accomplished. Currently the variable holds a list of the bot's responses for the current session. At some point I would love to make the change so that it avoids repeating the same words frequently.

+1

Ok, maybe it's not the cleanest way to do but I have something. At least it's a start.
I modified two functions : process() in base_match.py and get() in closest_match.py
For get() :
 def get(self, input_statement, statement_list=None):
     """
     Takes a statement string and a list of statement strings.
     Returns the closest matching statement from the list.
     """
     statement_list = self.get_available_statements(statement_list) # entries in json db

     if not statement_list:
         if self.has_storage_context:
             # Use a randomly picked statement
             return [(0, self.context.storage.get_random())]
         else:
             raise EmptyDatasetException

     # Get the text of each statement
     text_of_all_statements = []
     for statement in statement_list:
         text_of_all_statements.append(statement.text)

     # Make a list of matches ordered by confidence
     matches = process.extract(
         input_statement.text,
         text_of_all_statements
     )
     results = [( confidence/100.0, next((s for s in statement_list if s.text == match), None )) for match, confidence in matches]
     return results

For process() :
def process(self, input_statement):

     recent_statements = self.context.recent_statements[-10:] # get the ten last recent statements

     results = self.get(input_statement)

     for e in results :
         confidence = e[0]
         closest_match = e[1]

         # Save any updates made to the statement by the logic adapter
         self.context.storage.update(closest_match)

         # Get all statements that are in response to the closest match
         response_list = self.context.storage.filter(
             in_response_to__contains=closest_match.text
         )

         if response_list:
             response = self.break_tie(response_list, self.tie_breaking_method)
         else:
             response = self.context.storage.get_random()

         if response not in recent_statements:
             break # break the loop if the response has not been said in the ten last exchanges

     return confidence, response

A new feature called filters was recently introduced to ChatterBot. A filter called the RepetitiveResponseFilter has been added which eliminates recent responses from the set of possible replies that the chat bot can return. Currently, not all storage adapters support filtering but in the future they will.
See documentation http://chatterbot.readthedocs.io/en/stable/filters/index.html


Optimize GLPK parameters based on model

GLPK needs some parameter optimization based on model properties (can cut solve time by a very large amount).

AST with current weights and 800 Piety solves extremely slow with default-setting GLPK, but 16s with --pcost --cuts.


Permissions & Backend menu storm js error

Hi,
I'm currently trying OctoberCms and in particular your BuilderPlugin.
I have an error Javascript when i try to open "permissions" or "Backend menu".
Uncaught TypeError: Cannot read property 'length' of undefined =>  storm-min.js?v365:4263
I tried to :

reinstall October and BuilderPlugin => Same error
reload js file manualy from rainlab/builder/controllers/index.php => Same error

Do you have any ideas ?
Thx a lot.

I can't seem to replicate this using Build 365 and Build 371. Please provide step by step instructions from a clean installation. Are you changing the language, installing other plugins, anything like this?

Hi,
Thx for your prompt reply.
I just reinstall OctoberCMS and BuilderPlugin directly on my Debian server and i can't replicate (Build 365).
Consequently, this issue is related to my local environment. (Homebrew 1.0.7, Apache 2.2.31, Mysql 5.7.15, PHP 5.6.27). I tried clean installation on three differents computers but there are using almost the same server configuration (=> same error). I tried with MAMP and it works correctly.
Still looking for solution with homebrew...

I finally found a way to solve the issue by upgrading apache and by unloading the module fastcgi.

Hi,
I have solved the problem at my work this morning by updating my php.ini.
always_populate_raw_post_data = -1
By this way, it's not necessary to update apache and unload module fastgci.
@++

Does this mean I can replicate it if I set this value to 1?

I'm not sure...
It solves the problem on two computers running the same server configuration.
I just tried on my debian but i don't use fastcgi, consequently i can't replicate.
If you try it, let me know how it goes!


Report a bug

Like written in the README.md, I downloaded the pretrained model and put it in the './ckpt' directory. But when I run:
python main.py --reload --previous_dir "cpn"

I got this error:
Traceback (most recent call last):
  File "main.py", line 117, in <module>
    model_path = sorted(glob.glob(os.path.join(opt.previous_dir, '*.pth')))[0]
IndexError: list index out of range

After reviewing the code, I found the reason lies in opt.previous_dir, it is set as "cpn" by the code above. I added some to the main.py in line 117, and it looks like this:
model_path = sorted(glob.glob(os.path.join('./ckpt', opt.previous_dir, '*.pth')))[0]

Then I could evaluate the pretrained model.

Thanks for your reminder, we have revised it.


Add CreateTemporaryOrder_OrderSaved Event to sOrder

We added the Event Shopware_Modules_Order_CreateTemporaryOrder_OrderSaved. This is handy for doing statistics and other stuff with temporary orders.

Hello,
thank you for creating this pull request.
I have opened an issue on our Issue Tracker for you. See the issue link: https://issues.shopware.com/#/issues/SW-17218.
Please use this issue to track the state of your pull request.

This PR was closed due to inactivity. If this change is still important to you, feel free to create a new pull request.
For more information about our contribution guidelines, see https://developers.shopware.com/contributing/contribution-guideline/.


Move benchmark downloader script execution to the CI

Since its inception, the benchmark results have been collected, saved into cache on my local file system, and uploaded to https://github.com/enso-org/engine-benchmark-results. It is scheduled to run as a daily job. The https://github.com/enso-org/enso/blob/49835500895be8b1f779cc2c40df9c03ee3ebcb8/tools/performance/engine-benchmarks/bench_download.py script requires a (local) cache because the GH artifacts are dropped after 3 months (this period cannot be extended, according to the GH policies), so we would lose the benchmark results older than 3 months. The cache is located on my local file system, without any backups.
Let's add another daily GH action that runs bench_download.py.
### Tasks
- [ ] Add another daily GH action that runs `bench_download.py`.
- [ ] Refactor `bench_donwload.py` to use some (AWS?) API to access cache remotely.

A rather more difficult, but more permanent, solution is to implement just a frontend (hosted as a website in https://github.com/enso-org/engine-benchmark-results repo) that fetches all the bench results dynamically from the GH artifacts. Such a solution would have the following properties:

Do not collect results older than 3 months into any kind of cache - no need for any kind of backend.
Benchmark comparison (compare a custom branch to `develop) can be handled by the website
No more need for a custom bench_download.py script - everything could be done on the website.
The advantage is that we would see all the results immediately.

We need to look into this task eventually, as the current solution is not sustainable - in case something happens to my laptop, we lose the daily website update. Note that the results could be still recovered from the website itself (the results are plain javascript data structures in the HTML), although, that would require a lot of manual work.
@jdunkerley @JaroslavTulach What do you say about the proposed solution? Should we keep the status quo, but just move its execution into the CI (a bit easier solution, just rewrite some bits of bench_download.py script so that it can run as a daily GH action possibly with access to some remote file system), or should we aim for a more permanent solution? Any other propositions?

CCing @mwu-tow

should we aim for a more permanent solution

Start with Add another daily GH action that runs bench_download.py., generates and uploads the website to the repository.
Personal wish: don't write that GH action in Rust, please.

As for the issue — I'd like to chat sometime to better understand it.

Personal wish: don't write that GH action in Rust, please.

This is not about personal favors, while I want to keep you happy, there are various factors and tradeoffs involved. I think your remark goes beyond this particular issue.

Personal wish: don't write that GH action in Rust, please.

This is not about personal favors, ... there are various factors and tradeoffs involved. I think your remark goes beyond this particular issue.

Yes, this remark certainly reflects the wider current CI situation. The reason why it is mentioned in this issue is that this new CI action pipeline has nothing to do with already existing CI actions and as such it is a chance to start from scratch and avoid drawbacks of the current CI situation.

We spoked with @mwu-tow and this is the summary of our discussion:

Let's create another GH action yaml descriptor for this job

There is no need to generate this yaml file from Rust. There would be no benefits of doing so, since this job is a very simple one.

Let's use the https://github.com/enso-org/engine-benchmark-results repository as the cache itself - just upload the JSON files there directly.

Locally, I have 8 MB and 700 JSON files as a cache data for the last year. No need to do this via some sophisticated technology like AWS.

There is a single simple actionable item that blocks me from implementing this - generate a GH token with the following permissions:

Download artifacts from engine jobs in enso-org/enso repo.
Checkout and push to enso-org/engine-benchmark-results repo.

@mwu-tow Please, generate the token for me and let me know how to use that from the yaml file. I will also edit the description of this issue to reflect this conclusion.

@Akirathan
Thanks for the writeup!
I have created a secret named ENSO_BENCHMARK_RESULTS_TOKEN take contains a Github Token (PAT) that should include the necessary privileges. I haven't used the fine-grained PATs before, so please let me know if there are any issues. I might have missed something.


Swiper lags after first scroll

This is a (multiple allowed):

[x] bug

[ ] enhancement

[ ] feature-discussion (RFC)

Swiper Version: Swiper 5.3.8

Platform/Target and Browser Versions: Windows, Chrome Browser, NOT APPLICABLE TO SMARTPHONES

Live Link or JSFiddle/Codepen or website with isssue: https://stackblitz.com/edit/swiper-demo-27-mousewheel-control-672gar?embed=1&file=index.html

What you did
I've implemented swiper to simple project including few div's as a sliders
Expected Behavior
Scroll from one slide to another using mouse wheel.
Actual Behavior
Scroll works only from 1 -> 2 slide, to get to another slide (but not guaranteed) user is forced to intensify mouse scrolling. Adding sensitivity is not resolving this bug correctly.

Any chance you've found a solution? I have the exact problem but with horizontal scroll and I can find a proper solution. My designer found out that if you scroll the mouse really fast it scrolls to the next slide but that's not really an option...

Unfortunatelly I don't have solution to this problem :/ I noticed that this behaviour also exsists in swiper demos https://swiperjs.com/demos/

I found the regression, I think. For a workaround, does moving back to Swiper.js 5.2.0 work?
Last known working: 5.2.0
First known bad: 5.2.1
Thus, looks like #3328 is the culprit here. It perfectly reproduces on https://swiperjs.com/demos/270-mousewheel-control.html
Chrome 81.0.4044.138 (64-bit)
Windows 10 Pro x64 18363.778
Logitech MX Master 2S (default Windows 10 driver)
Swiper.js 5.2.1 and newer
You can scroll, at most, one slide normally before Swiper.js requires ~15 scroll wheel rotations. To any normal user, Swiper.js looks frozen using a horizontal scroll wheel.
Quirk: it only occurs with vertical scroll wheel events. Using my horizontal scroll wheel, Swiper.js behaves normally.

@tiadaguru I've just checked what version I'm using and turns out I've switched way back to 4.4.0. Swiper works normally and it doesn't seem to have the scrolling problem.

Closing as duplicate of #3420


Affordable Hosting Options for Multiple Terabytes of Data....

I'm currently in the process of taking all of the datasets we get our hands on in https://github.com/lucidrains/DALLE-pytorch/discussions/109
Ultimately my plan is to downscale all of them to 256px, and maybe 128px as well and then upload them for us to all download as needed.
I've looked into a few options for this, but essentially with the standard solution (S3 buckets) I can't afford it.
Honestly, though my preferred option would be academic torrents. On that note, I own a seedbox through leaseweb with 10 gigabit down/up speeds and (essentially) unlimited bandwidth. I could easily just be the first and only stable seeder for awhile. Hopefully others help out and seed as well, but I don't think it will be necessary until we have a ton of people using it.
I could also host them myself there, but if that thing goes down (it does sometimes) you'd all be unable to download. This way if we have two seeders and I go down for a minute, it won't be too bad.
Does anyone have experience with creating torrent files and starting to seed them on academictorrents? I'm ashamed to admit I've never actually made my own torrent. If so, I would appreciate any info on how I'd go about setting up torrents for all this stuff and hopefully also hosting the torrent files somewhere stable like academictorrents (or I guess just in the repo would work too?)

Awesome! I could assist in the first seeds when my new Rig arrives (in the next few weeks)! Also, I am going to ask my university big data center for advice, they usually support scientific big data research projects - maybe we can get a(n) (almost) free hosting for people who "apply" with a simple form for our dataset!
https://www.wikihow.com/Create-a-Torrent to me seems the best instruction for creating a torrent.
Unfortunately I haven't crea

Okay cool I'm working on getting the scraped images from OpenAI (creative commons I think?) up as a test torrent. Once I've got that I'll probably just use torrent for everything.

Unfortunately I also do not have experience creating torrent files but am happy to seed if you figure it out. My computer isn't running all the time and will have to watch my network usage (I accidentally ate my entire month's data cap in 3 days running wandb in online mode the first few training attempts) but the more seeders the better. And I think just linking the torrents in the readme should suffice

About how many TB will the compressed 256x256px (and 158x158px) dataset have? Maybe I will be looking for a big harddrive between 4 - 16 TB I guess?
Also, did we find the best compression parameters? Is 75% jpeg the compression to go? https://pypi.org/project/yfcc100m/ uses 85% e.g. ? Apart from that, I found Joachim Folz' compression script quite inspiring, as he also dealt with aspect ratios and color subsampling ( https://gitlab.com/jfolz/yfcc100m/-/blob/master/yfcc100m/convert.py ) - maybe you find some useful compression hints here. :)

About how many TB will the compressed 256x256px (and 158x158px) dataset have? Maybe I will be looking for a big harddrive between 4 - 16 TB I guess?
Also, did we find the best compression parameters? Is 75% jpeg the compression to go? https://pypi.org/project/yfcc100m/ uses 85% e.g. ? Apart from that, I found Joachim Folz' compression script quite inspiring, as he also dealt with aspect ratios and color subsampling ( https://gitlab.com/jfolz/yfcc100m/-/blob/master/yfcc100m/convert.py ) - maybe you find some useful compression hints here. :)

@robvanvolt
Honestly, I just put terrabytes in the title for good measure. So far everything (after resizing and mild compression) will fit under a terrabyte. The SSD i'm working off of is only a terrabyte and dealing with this stuff on an HDD isn't very fun (the pre-processing stuff I mean - I'm sure it'll run through a data-loader just fine). At any rate, I kinda have to keep things under a terabyte to keep my sanity.
tl;dr My SSD is currently filled with 800 GiB of data. That's for both the zip of each dataset, the unzipped version of each dataset, and also my resizing data.
Collective captions is the biggest so far. I got it from 400 GiB down to 50 GiB using gzip compression level 9 after jpeg compression of 75% and resizing to ~256 (they have non-square aspect ratios). Hopefully gives you something of an idea. Sorry I can't give you a full estimate currently. It's alot of stuff ha.
I'm still working on this by the way, slowly but surely. My bottleneck is the amount of time it takes to downsize/convert these things and then my lousy 30Mbps upload speeds at the home internet.

Awesome, so I guess my soon-to-arrive 1TB SSD will be enough for now! :D Also, you probably will have all the 'annoying' preprocessing/downloading/uploading stuff done until my rig arrives, thanks for that a lot!!! ^^'

👀 @afiaka87
I had no idea you were THIS committed..
I just uploaded the Mega.NZ link to COCO 2018 dataset btw, since google drive isn't such a great option for the long term:
https://mega.nz/file/HDoAQZwQ#j_koJRIw_BkfVhNfW-T2zVhEEiISo_A1fGxozRbW--s

👀 @afiaka87
I had no idea you were THIS committed..
I just uploaded the Mega.NZ link to COCO 2018 dataset btw, since google drive isn't such a great option for the long term:
https://mega.nz/file/HDoAQZwQ#j_koJRIw_BkfVhNfW-T2zVhEEiISo_A1fGxozRbW--s

Thanks for this! I had to take a mental health day yesterday but I'm gonna start looking at this again in a bit.


Filtering child nodes

Is it possible to filter not only siblings nodes but also child nodes?

Yes! I was reading the documentation and it is only possible to filter the siblings: "filter-expression : value for ng-repeat to use for filtering the sibling nodes"
It would be very helpful to have this functionality in the component.

Actually, the problem is that angular-tree-control Filtering does not work as expected on Angular 1.3.6. I just changed the version of my project to 1.3.16 and now the filtering is working fine!

I'm using angular 1.4.1 but on filtering it doesn't expand all the nodes with matching filter (nodes are filtered fine just not expanded) although in example page it does it fine. I can't find anything which I'm missing.


Fix remap to use ats_ip_range_parse for better range parsing.

As with #3448, ExtractIpRange is replaced by ats_ip_range_parse to avoid copies and support ranges and networks for IPv4 and IPv6.

Curious, is any of this covered by any of the AuTests ?


Better support the complexity in sample relations

There's a tree, different sections of the the same piece of tissue, different pieces of tissue from the same type of tissue of the same subject, different types of tissues in the same subject, different subjects of the same biological condition, different biological conditions of the same type (like different types of the same disease or treated vs. untreated as opposed to healthy control), different types of biological conditions (like disease vs. healthy). I'm considering trying TreeSummarizedExperiment and see how it goes. It might lead to significant changes in code related to sample_id and a major version bump.

Probably not inheriting from TreeSummarizedExperiment, because I don't need an edge at each cell. The phylo object takes up more memory than a data frame with the sample relations. I only need the tree related sample_id's to say z-planes, subjects, and conditions, so the tips of the tree would be the smallest sample division like z-planes rather than cells. Also, I don't need the edge weights, at least yet.

Actually, I'm not 100% sure if this will go into the Bioc 3.19 release. It might remain a separate branch even if I implement it before the deadline. Because I need to read up and think more about what to do with multiple samples and the sample relations tree. Right now I only have quick and dirty Moran's I comparison between samples, but I think I want to do hierarchical modeling. What this part looks like depends on what I do with it, and it can drastically change when I change my mind about what to do with it. Just as modeling is part of EDA in R for Data Science, it can also be part of ESDA. If it turns out to be a rabbit hole, then I'll just put the quick and dirty thing in the Voyager and put the more refined hierarchical modeling in a separate paper.

@lambdamoses I just wanted to see if this would be included in the Bioconductor 3.20 release?

Sorry, I don't think so. It still needs further experimentation and development.


Renewal fails

NPM fails to renew a valid Let's Encrypt certificate with the message "Internal Error".
I'm running Nginx 1.14.2 and I have used it to obtain a valid Let's encrypt certificate that is about to expire. So it's time to renew.
The certificate has been in use for almost three months with no problems what so ever.
Prior to renewal, my firewall is set to point to the server where NPM is running with 80 --> 35080  and 443 --> 35443
This is the output on the console when renewal fails:
[2020-7-10] [21:37:19] [SSL      ] › ℹ  info      Renewing Let'sEncrypt certificates for Cert #1: xxxxx.yyyy.com
[2020-7-10] [21:37:21] [Express  ] › ⚠  warning   Command failed: /usr/bin/certbot renew --non-interactive --config "/etc/letsencrypt.ini" --cert-name "n
pm-1" --preferred-challenges "dns,http" --disable-hook-validation
Saving debug log to /config/log/letsencrypt/letsencrypt.log

Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/certbot/renewal.py", line 67, in _reconstitute renewal_candidate = storage.RenewableCert(full_path, config)
  File "/usr/lib/python3.6/site-packages/certbot/storage.py", line 461, in __init__self._check_symlinks()
  File "/usr/lib/python3.6/site-packages/certbot/storage.py", line 520, in _check_symlinks "expected {0} to be a symlink".format(link)) certbot.errors.CertStorageError: expected /etc/letsencrypt/live/npm-1/cert.pem to be a symlink
Renewal configuration file /etc/letsencrypt/renewal/npm-1.conf is broken. Skipping.
0 renew failure(s), 1 parse failure(s)

I really do need some help here to find out why renewal fails.
Many thanks in advance.

See #396

Thanks for the tip.
I see that a lot of others have similar problem - and no one has found a solution.
That's really sad.

Unfortunately, yes. But I'll close this as a duplicate of https://github.com/jc21/nginx-proxy-manager/issues/396.


Fix cargo_target_empty_cfg test with env var.

The test cargo_target_empty_cfg does not work if the environment variable CARGO_TARGET_DIR is set. Config should not be looking at the "real" environment, but instead self.env which is controlled during tests.
I also did some minor style/cleanup changes.
Unblocks upstream sync.

r? @alexcrichton
(rust-highfive has picked a reviewer for you, use r? to override)

@bors: r+

:pushpin: Commit a0d0d01d10a88ec00a29f86c256ab354275d56b3 has been approved by alexcrichton

:hourglass: Testing commit a0d0d01d10a88ec00a29f86c256ab354275d56b3 with merge 784696acf1c3a3184f226d977e00a73208ddc493...

:sunny: Test successful - checks-actions
Approved by: alexcrichton
Pushing 784696acf1c3a3184f226d977e00a73208ddc493 to master...


Bug with missing whitespace or newlines in tables and lists

I'm using the fresh released version 2.0.5 👍
In trying to convert redmine textile with textile.js.
I've observed that textile.js needs whitespace/newlines where e.g. https://textile-lang.com/ doesn't.
The following textile code:
* [*H*]attric: *DO*
|*D*|Diversity|
|*O*|Obstacles|

should result in a ul having a single li , and a table with two lines belonging to that li.
In textile.js this results in following html code (
 ommitted)

Hattric: DO

|*D*|Diversity|

|*O*|Obstacles|

where on https://textile-lang.com/ it results as follows (I think correctly)

Hattric: DO

			D
			Diversity

			O
			Obstacles

Table rendering starts working, if there is a newline after the first line ([*H*]attric: *DO*), but then the table does not belong to the li element, but is rendered after the closing ul.

Note that if a tables line has whitespace in front, not table is rendered:
 |D|Diversity|
 |O|Obstacles|

results in
|D|Diversity| |O|Obstacles|

I'm considering this to be a bug

Firstly, for your specific case: RedMine uses RedCloth as its converter which emits exactly the same thing that textile-js does given your input. If you are looking for 1-to-1 conversion, then I don't get why you would want something different.
Secondly, this is not a bug. The PHP implementation is in error here. What textile-lang is doing is not valid textile conversion. Tables and lists are both are block level and must not be nested in each other. The fact that this example works in the PHP version is because they don't actually parse or validate the source but simply regexp replace things with little regard to context. This isn't how textile-js or RedCloth work.
The textile language allows mixing HTML and shorthand for this very reason: Because complex needs exist. The correct way to get the result you want is to mix in some HTML:

[*H*]attric: *DO*

|*D*|Diversity|
|*O*|Obstacles|

Btw, the PHP implementation is quite bonkers. You can do all sorts of absurd things in it that we won't accept. Here is an example:
p. foo
* bar

Which this version renders:

foo

bar

Whereas they emit invalid HTML with a list nested in a paragraph and throw a bunch of
s in there, because why not?

foo

bar

@borgar you're right that RedCloth is compatible to textile.js. Obviously someone at redmine tweaked the RedCloth implementation textile parse to allow the construct above to work, e.g. allow tables within list elements. Tested here with current redmine version.
One solution for me would be to allow the following to work:

Hattric: DO

|*D*|Diversity|

which is the primary output of running textile("* [*H*]attric: *DO*\r\n|*D*|Diversity|") and simple take the output from the first run and feed it again into textile.
The problem here is, that textile.js needs a \r\n in front of the first table line.
Could this be accomplished in a simple way?

Yeah, I see the problem. I'm not sure a second passthrough will be safe, there are likely cases, esp. with <notextile> where context is lost and things go strange.
For custom markup you really need a custom parser. My recommendation would be to fork the project, add support for inline tables and build your own package.
I have created a branch where your desired case works: https://github.com/borgar/textile-js/compare/inline-tables
I can't vouch for what happens if the branch finds something it thinks is a table elsewhere. And you will have to build and package this yourself. If you are just running a local job using npm link might spare you some work on that front.

Thank you @borgar ! Your help is very appreciated. I'll give it a try.

@borgar Cool! works like expected for our use case!
I'm afraid to ask, but could you please, please release at npm?
It seems that the new inline table feature is only active when setting the option  { inlineTables : true } so it should not do any harm to others having this published.
That would be great!

Sorry, releasing it also means supporting it. This is not something I am willing to release without more work and way more tests.

I understand that. But the branch already helps us a lot.
But maybe as time passes you get back to this (I hope so!) and this feature find its way into the master branch. :-)


[CT-304] Add structured logging for parse events

Create events for each time dbt:

Schedules a node for removal or re-parsing, including the unique_id of that node
Finishes re-parsing a node, including its unique_id and all properties
(Other parse-time events?)

Goal: Make it possible to track changes in dbt project state, using a solidified interface, without requiring access to manifest.json (or introspection of partial_parse.msgpack, for internal use only).
This will be a lot of events during full re-parses in big projects. Should we seek to make these optional, or batch them up in any way?

I was wondering if we should have the option of writing these node updates to a separate log. Also, would we turn it off for full parses?

Estimation:

needs more clarification on how we want this to work
@jtcohen6 would this be a good use case for a flag like --cache-events to turn this off?
@jtcohen6 given the goal is about tracking dbt state changes, is just the filename enough information in each event?
@jtcohen6  models are parsed multiple times. do we only want to fire an event when we're completely done with the file?
estimation IF it were just adding events that contain the name of the file after it's completely parsed during partial parsing, and no flag: 3

I think this would be a great use case for a new logging level and/or flag akin to --log-cache-events. Most users running locally will not want the full information here. (I even wonder that about our Parsing ... / static parser / parser fallback events today, which add a lot of clutter to logs/dbt.log.)
I think the filename by itself may not be enough here. The goal for each event would be to provide all relevant, updated information about that (changed) node power downstream metadata use cases. And to fire it only when we're completely done with that file / node. What information is that exactly? The full manifest entry for that node? Or a much smaller subset (unique_id, resource_type, checksum, config/materialization)? I think our Metadata team colleagues will need to help us think through the answer.
I also know that, per the discussion in + around #4617, we'd like to turn "manifest node entry" from a joint internal/external contract, into something internal with a stabilized external serialization. That goes for manifest.json + these log events + representation in the Jinja context.

More thinking needed here. Structured events / logging does not feel like the appropriate mechanism for fully reconstructing the full Manifest / project contents, even if we did have one event per parsed node representation. I'm going to close this issue for now.


Dcolligan 70 cfg file

This works, but I'm still not sure what preference we want to override what; see discussion in #70

Let's get #80 merged first before we discuss this.
I think it would be useful to give a little more information in the PR title - I have trouble remembering what issue is what! Also, I'm not sure putting the user name into the title adds much information.

Agreed with Jerome's comments.
As I read the flask doc, the implicit expectation seems to be that paths are absolute, which would allow you to not bury your config file inside ga4gh/. I'd prefer not committing example.cfg at all.
I suspect that using DEBUG=True in your example should give a visible change in server behavior which would be easy to manually verify.

+1

@jeromekelleher Yes, I agree that we should wait on #80 before moving forward with this.  This pull request was more of a POC for the time being.  Also, good suggestion on more informative PR request titles.  Github seems to parse them automatically from the branch name if not provided.  I put the user name in as a matter of habit; at a previous job we had trouble identifying which branch belonged to whom but with Github's interface that doesn't really seem to be an issue.  I'll adopt a more useful convention.

Ok, so now that #80 has been merged, can we revisit this PR?

Looks good to me; it's a useful tool setting up configurations for development. +1, modulo the comments above.

@jeromekelleher pushed commit with your suggestions

OK, two +1s so I'm merging. Thanks @dcolligan.


docs: move cognitive namespace to services namespace

Related Issues/PRs

#xxx
What changes are proposed in this pull request?
Briefly describe the changes included in this Pull Request.
How is this patch tested?

[ ] I have written tests (not required for typo or doc fix) and confirmed the proposed feature/bug-fix/change works.

Does this PR change any dependencies?

[ ] No. You can skip this section.
[ ] Yes. Make sure the dependencies are resolved correctly, and list changes here.

Does this PR add a new feature? If so, have you added samples on website?

[ ] No. You can skip this section.
[ ] Yes. Make sure you have added samples following below steps.

Find the corresponding markdown file for your new feature in website/docs/documentation folder.
Make sure you choose the correct class estimators/transformers and namespace.
Follow the pattern in markdown file and add another section for your new API, including pyspark, scala (and .NET potentially) samples.
Make sure the DocTable points to correct API link.
Navigate to website folder, and run yarn run start to make sure the website renders correctly.
Don't forget to add <!--pytest-codeblocks:cont--> before each python code blocks to enable auto-tests for python samples.
Make sure the WebsiteSamplesTests job pass in the pipeline.

/azp run

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Word andPhrases Score
CorrectnessScore
Scorecard
Processed

docs/Reference/Dotnet Setup.md
90
100
76
link
:white_check_mark:

docs/Use with MLFlow/Overview.md
91
74
85
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology.

Article
Acrolinxscore
Word andPhrases Score
CorrectnessScore
Scorecard
Processed

docs/Reference/Dotnet Setup.md
90
100
76
link
:white_check_mark:

docs/Use with MLFlow/Overview.md
91
74
85
link
:white_check_mark:

More information about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues
Troubleshooting issues with Acrolinx

/azp run

Codecov Report

Merging #2118 (6015228) into master (fd00b87) will decrease coverage by 82.08%.
The diff coverage is n/a.

:exclamation: Current head 6015228 differs from pull request most recent head dda5ec6. Consider uploading reports for the commit dda5ec6 to get more accurate results

@@            Coverage Diff             @@
##           master   #2118       +/-   ##
==========================================
- Coverage   86.41%   4.34%   -82.08%
==========================================
  Files         312     312
  Lines       16299   16299
  Branches      866     866
==========================================
- Hits        14085     708    -13377
- Misses       2214   15591    +13377

see 293 files with indirect coverage changes


Vriable install_vagrant_key: '' expected type 'string'

Hi
I have tried to build the VM with packer. I used this command - make virtualbox/ubuntu1404 and then I have got the error - variable install_vagrant_key: '' expected type 'string'. In ubuntu1404.json I found out that currently we have -  install_vagrant_key: true. So, we should changed it, because of the new version of packer v.0.8.6 doesn't support it. Could you please fix it?

I believe you are working from an old version of the source code - that make command has not been supported for quite some time (and the issue with the type has also been fixed long ago).
Refresh your source and take a look at the README.md for the correct build syntax.


Temporarily freeze BakerOperatingSystem till the flood of redundant releases stops

See investigation in KSP-CKAN/CKAN-meta#2822, this mod is currently spamming the database with many many copies of the same download to work around SpaceDock's single game version limitation. I have tagged the author with some explanations, but so far there has not been a response, so now it's frozen to prevent things from getting worse. We can unfreeze it once we successfully communicate with @SelfAwareMatter.

Quick confirmation that this is really happening:
$ for URL in $(curl -sL https://spacedock.info/api/mod/3052 | jq -rM '"https://spacedock.info" + .versions[].download_path' | dos2unix) ; do curl -sL "$URL" | sha1sum - ; done
951cfadcb33e9746d8ec34b23d0add7f1b5674fb *-
951cfadcb33e9746d8ec34b23d0add7f1b5674fb *-
951cfadcb33e9746d8ec34b23d0add7f1b5674fb *-
951cfadcb33e9746d8ec34b23d0add7f1b5674fb *-
951cfadcb33e9746d8ec34b23d0add7f1b5674fb *-
951cfadcb33e9746d8ec34b23d0add7f1b5674fb *-
951cfadcb33e9746d8ec34b23d0add7f1b5674fb *-
951cfadcb33e9746d8ec34b23d0add7f1b5674fb *-
951cfadcb33e9746d8ec34b23d0add7f1b5674fb *-
951cfadcb33e9746d8ec34b23d0add7f1b5674fb *-
951cfadcb33e9746d8ec34b23d0add7f1b5674fb *-
951cfadcb33e9746d8ec34b23d0add7f1b5674fb *-
951cfadcb33e9746d8ec34b23d0add7f1b5674fb *-


Feature/loader for mackenzies

Is your pre-commit version sync with the repo? Just want to make sure we have the same setting (the trailing commas)?


Raycast Search Emojii & Symbols Floating Applied to Parent

Steps to reproduce:

Setup Raycast to open it's Search Emojii & Symbols floating window via Alt+Shift+Space.
Open Chrome (or any other application)
Press Alt+Shift+Space to bring up the Search Emojii & Symbols window. (Note: Invoking Raycast itself first and then selecting Search Emojii & Symbols doesn't cause the issue, it has to be via the keyboard shortcut)

Expected Behavior
The Search Emojii & Symbols should float, but the Chrome window (or whatever the parent window was) is not impacted.
Actual Behavior
The parent window is being switched into floating mode. Restoring tiling mode via layout floating tiling which I have mapped to alt+s f fixes the situation. The video below shows the problem in action. I'm placing a terminal window next to Chrome in order to show the impact of the Chrome window going into float mode.
https://github.com/nikitabobko/AeroSpace/assets/15000/8e243408-71db-4619-b851-611334fe7d0b
Thank you so much for creating this project. Please let me know if this report makes sense or if I can provide more information.

The issue sounds weird. Are you sure that you don't have alt-shift-space mapping in your aerospace.toml config?
I couldn't reproduce the bug by following your steps. The focused window stays unaffected

The issue sounds weird. Are you sure that you don't have alt-shift-space mapping in your aerospace.toml config?

🤦🏻♂ that was the problem. I removed the mapping and things are working great now.

I couldn't reproduce the bug by following your steps. The focused window stays unaffected

Thank you so much for taking the time, and apologies for not realizing my mistake myself.
I've been trying out different tiling WMs for mac over the years and always ran into weird issues like this. But AeroSpace seems to be the first WM that actually works well enough to be my daily driver. Thank you so much for creating this project and your help here. I've made a small GH sponsorship donation as a token of my appreciation ❤

Thank you! I appreciate the support


Page source does not render page's html (Lazy loading?)

I'm submitting a...

[x] Bug report
[ ] Feature request
[ ] Documentation issue or request

In package

[ ] @ng-toolkit/init
[ ] @ng-toolkit/serverless
[x] @ng-toolkit/universal
[ ] @ng-toolkit/pwa
[ ] @ng-toolkit/firebug

Current behavior

Well I have installed ngtoolkit universal and fixed my bugs etc, and it rendered and opened in the browser however, it's just when I view source any page of my routes nothing appears it's the same like before I install angular universal my routes do not appear in html format however everything with ngtoolkit succeeded in building my app. I do not know if its because of lazy loading or what because my app is a little bit big and it's not one lazy loading module it's multiple. so yeah it's just weird.
Expected behavior

I desire for it to work to render each page's html.
Minimal reproduction of the problem with instructions

Example repository

What is the motivation / use case for changing the behavior?

Environment

Angular version: X.Y.Z

- Node version: XX
- Platform:

Others:

npm install -g ng
ng add @ng-toolkit/universal

Well I figured it out, and it worked, it was not working because of this
 const routes: Routes = [
 {
path: '',
component: CoreComponent,
children: [
  {
    path: '',
    loadChildren: '../home/home.module#HomeModule'
  },
  {
    path: 'cities',
    loadChildren: '../cities/cities.module#CitiesModule'
  },
  {
    path: 'activities',
    loadChildren: '../activities/activities.module#ActivitiesModule'
  },
  {
    path: 'locals/:id',
    loadChildren: '../locals/locals.module#LocalsModule'
  },
  {
    path: 'local',
    loadChildren: '../local-profile/local-profile.module#LocalProfileModule'
  },
  {
    path: 'trips',
    loadChildren: '../trips/trips.module#TripsModule'
  },
  {
    path: 'messages',
    loadChildren: '../messages/messages.module#MessagesModule'
  },
  {
    path: 'pages',
    loadChildren: '../pages/pages.module#PagesModule'
  }
]

},
{
path: 'login',
component: LoginComponent
},
{
path: '**',
component: NotFoundComponent
}
];
the problem was in loading lazy loaded children when I take them out as root, it works fine but could you please tell me whats wrong with this structure ?
Thanks.

What is the error message?

It is not error message when I change everything to be
const routes: Routes = [
{
path: '',
loadChildren: '../home/home.module#HomeModule'
},
{
path: 'cities',
loadChildren: '../cities/cities.module#CitiesModule'
},
{
path: 'activities',
loadChildren: '../activities/activities.module#ActivitiesModule'
},
{
path: 'locals/:id',
loadChildren: '../locals/locals.module#LocalsModule'
},
{
path: 'local',
loadChildren: '../local-profile/local-profile.module#LocalProfileModule'
},
{
path: 'trips',
loadChildren: '../trips/trips.module#TripsModule'
},
{
path: 'messages',
loadChildren: '../messages/messages.module#MessagesModule'
},
{
path: 'pages',
loadChildren: '../pages/pages.module#PagesModule'
},
{
path: 'login',
component: LoginComponent
},
{
path: '**',
component: NotFoundComponent
}
];
it works fine, but because I removed CoreComponent from the routes, it does not render the header and the footer, since they are includes into core.component.html and if I moved them into the app.component.html it doesn't give me any errors but does not render at all any content and give me empty object '{}'

In works fine case and in not work case:
Place a breakpoint in

@NgModule

and

RouterModule.forRoot

and

const routes: Routes = [
{
...
}

and:

CoreComponent

and:

app.component

Well I figured it out but it's so weird it happens because of 2 components gets called inside of the navbar and when I comment app-signin-local and app-signup-local everything works just fine and also in the build it does not give any error I kept going back and forth inside of the my modules file just in case it's caused by export or import but nothing.
HERE IS HTML:

Home (current)

Cities

Login

Signup

0
{{ notifications?.length }}

          {{
            not
          }}

       My Profile

         My Profile
         My Booking
         My Booking

         My Calendar

      Logout

        Become a local

        Become a local

          Signin with Locals

×

HERE IS CORE MODULE:
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { CoreComponent } from './core.component';
import { CoreRoutingModule } from './core-routing.module';
import { LoginComponent } from './login/login.component';
import { HeaderComponent } from './header/header.component';
import { NotFoundComponent } from './not-found/not-found.component';
import { RouterModule } from '@angular/router';
import { AuthenticationService } from './services/authentication.service';
import { AuthGuardService } from './services/auth-guard.service';
import { SocketService } from './services/socket.service';
import { SharedModule } from '../shared/shared.module';
import { FooterComponent } from './footer/footer.component';
import { DefaultNavComponent } from './default-nav/default-nav.component';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
@NgModule({
imports: [
CommonModule,
CoreRoutingModule,
FormsModule,
ReactiveFormsModule,
SharedModule
],
declarations: [
FooterComponent,
DefaultNavComponent,
LoginComponent,
CoreComponent,
HeaderComponent,
NotFoundComponent
],
exports: [
RouterModule,
FooterComponent,
DefaultNavComponent,
SharedModule,
HeaderComponent
],
providers: [AuthenticationService, AuthGuardService, SocketService]
})
export class CoreModule {}
AND HERE IS THE SHARED MODULE:
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RequiredLabelDirective } from './directives/required-label.directive';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { ForgetPasswordComponent } from './forgetPassword/forget-password.component';
import { RouterModule } from '@angular/router';
import { ResetPasswordComponent } from './resetPassword/reset-password.component';
import { NgSelectModule } from '@ng-select/ng-select';
import { MyDatePickerModule } from 'mydatepicker';
import { FlatpickrModule } from 'angularx-flatpickr';
import { FacebookModule } from 'ngx-facebook';
import { NotificationComponent } from './notification/notification.component';
import { SigninComponent } from './sign-in/sign-in.component';
import { SignupComponent } from './sign-up/sign-up.component';
@NgModule({
imports: [
CommonModule,
FormsModule,
ReactiveFormsModule,
NgSelectModule,
RouterModule,
MyDatePickerModule,
FlatpickrModule.forRoot(),
FacebookModule.forRoot()
],
declarations: [
RequiredLabelDirective,
SigninComponent,
SignupComponent,
ForgetPasswordComponent,
ResetPasswordComponent,
NotificationComponent
],
exports: [
NgSelectModule,
MyDatePickerModule,
RequiredLabelDirective,
SigninComponent,
SignupComponent,
NotificationComponent,
ForgetPasswordComponent
],
providers: []
})
export class SharedModule {}
Can you please check them out? thanks alot.


Introduced SpannerWriteResult

Introduced SpannerWriteResult that

reports failed mutations;
allows to sequence several writes to Cloud Spanner.

R: @jkff

Retest this please

Please take a look

@chamikaramj @iemejia could you please take a look?

Hi sorry I have missed the notification on this one. Does this one have a Jira if no can you please create one + add a description + rename PR title. Can you please also rebase and push to see the execution status.

Done, @iemejia please take look when you have a chance

What's the status of this ?

HI, sorry I have forgotten about this one. I am not going to have a lot of availability next two weeks, so asking @jkff please to take this one back. Please excuse me @mairbek .

retest this please

There seems to be a checkstyle violation that's legit, could you fix it? But also a bunch of Java compiler OOMs, not sure why is that, will ping<EMAIL_ADDRESS>

Fixed checkstyle warnings

Looks legit, but let's retest one more time...

retest this please

OK, the test failure is flaky, and I confirmed locally that the tests pass. Merging.


Video fallback might be bad idea.. either find a workaround or don't support old browsers.

For captureStream to work in Firefox we need a vendor prefix which we're not using currently. https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/captureStream
There's no support currently in Edge or Safari.
It might be a better idea to just rewrite the video mirroring functionality to use a canvas instead of another <video> element.
This code works for mirroring video, for example:
const canvas = document.querySelector('canvas');
const ctx = canvas.getContext('2d');
function streamToCanvas() {
  const { videoWidth, videoHeight } = video;
  if (canvas.width !== videoWidth || canvas.height !== videoHeight) {
    canvas.width = video.videoWidth;
    canvas.height = video.videoHeight;
  }
  ctx.drawImage(video, 0, 0);
  requestAnimationFrame(streamToCanvas);
}
requestAnimationFrame(streamToCanvas);


Add TypeScript definitions and upgrade tests to Feathers 4

For https://github.com/feathersjs/feathers/issues/1438

How can I install this type with npm conmmand?
I'm trying to use app.service('messages').Model with Typescript.
Thank you.

Make sure you have the latest version of this dependency (v8.0.1 or later).


AVRO-1047: Java: Fix remaining javac warnings.

AVRO-1913 fixed most warnings, but missed a few unchecked usages and left in some redundant casts.  This patch eliminates remaining warnings even with the -Xlint:all flag added to javac.  With no more warnings to surpress, the @SuppressWarnings("all") annotation isremoved from the generated code, as well.

First impression of this change is good.
Things that need attention:

Can you check if it is easily possible to force the regular build to compile the generated code with this -Xlint:all ? That way we can spot new problems in this area much faster.
When I run the full build (i.e. mvn clean package) I get test errors that the newly generated classes do not match the versions in the code base. (Position.java and Player.java) This is a normal effect of changing the code generation.
This improvement is not mentioned yet in the CHANGES.txt

I modified org.apache.avro.compiler.specific.TestSpecificCompiler#assertCompilesWithJavaCompiler to catch these in tests:

Passed -Xlint:all to the compile task.
Added a compiler diagnostic listener to collect warnings and an assert that fails the test when present.
Added a test schema that triggers the warnings that were fixed by the original commit (union&fixed types).

Also fixed the failing tests, added a summary in CHANGES.txt, rebased off of branch-1.8, and squashed the history into a single commit.  Let me know if I should do anything else!

+1
Thanks for this cleanup!

Committed to both branch-1.8 and master.
Thanks.
(Can you please close this pull request? Thanks.)


[TIR][USMP] Augmenting the algo interface with memory pressure

This commit adds memory pressue to be an arugment to
the USMP algorithm interface as certain iterative algorithms
could use this as a guide determine the termination
criteria.

Pinging @leandron. PTAL when you have some time.


Neo4j configure discovery host

Signed-off-by: Pavel Sedivy<EMAIL_ADDRESS>
What this PR does / why we need it:
In our cluster setup, "svc.cluster.local" is not a valid domain "suffix" and thus we need to override it in NEO4J_causal__clustering_initial__discovery__members definition (both core and read-replica pods).
Which issue this PR fixes
(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged)

fixes #

Special notes for your reviewer:
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md

/assign @unguiculus

cc @mneedham

/ok-to-test


Onboard lift shift ebook

This is another eBook import.
This one is for lift and shift scenarios.

closing and re-opening to force a new build.


Please invite me to the community

Name
smile1130
Additional Context
I want to work at here

Invitation sent to join the GitHub Organization. Welcome to Infraform 🎉Please check your mail to accept the invitation sent by GitHub! 🤖About usInfraform is an open source solution for serverless platforms, it is designed for developing solutions and enhancing creators to create their infrastructure 💻 Great to have you in our community ✨ Looking forward to your valuable contributions! 🤓 You can also check our community ✨ Github ✨ LinkedIn 💜 You can also share our community with other folks who want to learn about development, DevOps, tech, and contribute together and with us 👉💜👈


SR Flip-Flop doesn't have clock

Describe the bug
In the Simulator, the SR Flip Flop does not have clock, due to which SR Flip Flop is showing some unexpected behavior.
To Reproduce
Steps to reproduce the behavior:

Go to 'Simulator'
Scroll down to 'Sequential Elements'
Click On 'SR Flip-Flop'
See error.

Expected behavior
It should have a clock(like JK Flip Flop).
Screenshots
Unexpected behavior :
https://user-images.githubusercontent.com/89515816/158028014-90ed3df8-3f73-4a7b-a39a-8566046dd43f.mov
Device Information [optional]:

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

Additional context
Add any other context about the problem here.

I would like to work on this if this issue is open

I would like to work on this if this issue is open

Yes you can , but let just wait for  @gr455 and @tachyons suggestions on this issue..


webSessionID

Hi, this is maybe wrong project to ask, but isn't webSessionID supported anymore?
can't found it anywhere

It was removed 4 months ago.

Alternatively, you can use  node-steam-weblogon.


Added ability for users to change tab names from menu items in trace explorer widget

Known Issues:

Default trace tab opened on launch of trace server does not have its tab renamed, issue is unrelated to code changes. @arfio is aware of this
Editing tab could use a bit more padding

Default Behaviour:

After consulting with @ebugden, both clicking outside the menu item and pressing enter will save the tab name and changes will be reflected in both the menu item and the tab name. @ssmagula
Max tab length of 50 characters
If 0 characters are inputed, tab name and menu item name are reverted to their state before they were being edited

Signed-off-by: Nikolai Peram<EMAIL_ADDRESS>

Thanks for contributing this useful feature!
Works nicely, but I do have a couple of comments:

An open tab's name doesn't change until it's closed and then reopened. After that it does update while typing. See video below.
Initially trace names are prefixed with "Trace:". On the first renaming it's preserved, but in following renaming it's discarded. I think it would be nice to preserve it, do differentiate trace tabs from source code tabs, for instance, or at least have a consistent behavior.
I think it would be visually cleaner to align the pen icon to the right, so it'll be at the same "column" for all traces.
In addition to the pen icon, I think we should also add a "Rename Trace Tab" entry to the Opened Traces context menu.
The text input box, when renaming, could perhaps be thinner by a few pixels, so it won't shadow part of the first line of the experiment's contents.

https://user-images.githubusercontent.com/67920463/129965318-0f4816ba-5639-498f-a7a1-70444a305741.mp4

Looking good! Below are some notes after screensharing with @thefinaljob :
This feature is valuable because experienced trace visualization users say things like: "It's important I know which is the 'before trace' and which is the 'after [I make a change] trace'..." and: "When I share screenshots with others I hate scrawling all the details on the screenshots like 'Before...' and 'After I did xyz' because it's so hard to write letters with a mouse."
Re: saving on enter or loss of focus: I've seen many users make edits in place then move on—never hitting enter—so saving when focus is lost is a good way to prevent errors. Nice nuance and thumbs up! The ability to revert is also good thinking, and I only wish we had a good visible affordance for "revert."  Maybe the reload/revert icon?
I'd title this commit "Enable user to to edit _trace set labels from within the Trace Viewer list of traces"
Here's an edit-in-place sketch, showing various states in the process:

Everyone reading this is invited to join this whiteboard (Figjam). There you can zoom in, comment, vote, augment, correct, educate. It's free, and you can join via this link: https://www.figma.com/file/5nxXdb198DkTwT24ZyqLkv/TraceViz-Figjam-Edit-in-place?node-id=0%3A1
Key points, in priority order:
2. Indicate focus state with standard cyan border around text entry box
3. Pencil icon and darker bg appear on hover of label (rationale: imagine a list of many trace sets: do we need to clutter the screen with many pencils?)
3. Text entry box should have enough padding so it doesn't collide/overlap
4. Add the "Edit trace label" item to the contextual menu

@thefinaljob look over the commit message guidelines in the new How to contribute code readme section. Some specific issues:

[ ]  Title should be in imperative
[ ] Fixed issue should be linked to the PR so the issue automatically closes when the PR is merged. Issue is linked automatically when you include "Fixes #384" in the commit message (preferred) or you can do this manually via Github UI.

More thoughts to come! Thanks for the PR 🍰

ssmagula: I'd title this commit "Enable user to to edit _trace set labels from within the Trace Viewer list of traces"

I second this! Even though #384 was the motivation for these changes, the main action implemented in this PR is changing the trace set label (the tab changing names is a logical consequence of relabeling the trace set not the main action).

mirsky-work: I think we should also add a "Rename Trace Tab" entry to the Opened Traces context menu.

I think a context menu entry isn't critical at the moment since the action is already possible. However, if an entry is added it should be "Change trace label" or "Relabel trace" (for the same reason as above).
Ideally, renaming tabs would eventually also be possible through the tab's context menu, but @ssmagula made the good point that this should be a Theia contribution not a trace-viewer-extension only thing.

bhufmann: Firstly, right now the change of the name is done purely on the front-end side. The back-end (trace-server) doesn't know about the changes. When disconnecting and re-connecting the front-end the old name is back.
To fix that, the name has to be propagated to the trace server so that the change is persisted for re-connection or connection using a different client. A fullstack update (front-end, TSP, and back-end) is needed to support that.

True. I agree that the trace set label should be propagated to the server. Do these additional changes need to be prepared before this PR is merged? I'm divided, since I agree that merging just the front end changes is incomplete, but I think it still improves most use cases (re-connection or connection using a different client are less common).

I think that persistence is important. Closing the trace viewer while keeping a trace on the server is quite common. So, when opening the trace viewer again I personally would expect, that the renamed trace name is shown.

bhufmann: Secondly, we need to be clear that the renaming of experiment name doesn't change any file resources (i.e. the trace files)., ...

I agree that it's not clear that changing the trace set label doesn't affect the filesystem and that this is confusing. But I don't think resolving this is within the scope of this PR. At the moment, trace set generation is all implicit and behind the scenes so the first step would be to to introduce the concept of "trace sets" that have no connection to the filesystem. If necessary, the changes proposed below could be made before merging this PR.
In the short term (new issues?):
* **Better default trace set name:** The difference between the filesystem and the trace set would be more clear if the trace set label wasn't exactly the folder name (when automatically generating a trace set when a folder containing CTF traces), but this can be addressed in a different issue/PR. For example: "Trace Set 0 - _Generated from trace-folder-name_" instead of just "trace-folder-name".

This could be the description and shown as tooltip. Using "Trace Set 0", "Trace Set 1" is not necessary better than using the directory name. The directory name right now works well, for example, when opening a trace set from the LTTng session root directory and the trace set name becomes the session name. Another use case is, when the root directory is a test case name and opening the trace set name become the unit test name. Changing the name to "Trace Set 0" as default, would break these use cases.
I'm wondering if a dialog box should open with text box after selecting "Open with Trace Viewer". It opens with the default name. If the use wants to keep it, then he only needs to press ok. Otherwise the use can type a new name and then press enter.

* **Explicitly show file "Refresh"** button next to trace set (or toast notification) when traces files are overwritten. This clearly communicates that a copy of the trace files was not made.

Some indication is needed and a refresh needs to be done. Right now with the local trace server implementation, the trace server only has a symbolic link to the original trace file in the file system. If the original trace file is overridden, then the trace index, state systems etc (all trace analysis files) are out-dated as well and need to be re-built.

... and hence using this to keep a "before"-trace to be compared with an "after"-trace for trace comparison purposes won't work. This compare use case has to be addressed differently so that on the trace server each trace file of the experiment is kept. I think a deep copy of the experiment on the server would be needed instead of renaming the existing experiment.

Good point that these changes don't make it easier to manage trace files when doing a before/after comparison (as in, users would still have to manually move/rename the "before" traces before generating the "after" traces). I don't think comparison is within the scope of this issue and I don't think renaming the trace set is the only indicator of "I want to keep this version of these trace files", but more thought definitely needs to go into comparison and whether/when to make copies of the actual trace files (especially since it's likely that a portion of users will trace using scripts that output trace files that always have the same name).

Yes, Trace comparison is not scope of this PR. But it's somehow related when it comes to manage the trace files and I think it was important to mention it here.

Thank you for this relevant feedback!
No problem!

@arfio has been working on getting the re-render issue for the menu completed. If we can't get it fixed shortly, we might have to live with this and submit another issue stating that the menu needs to be re-tooled so that it works with react components as menu items.

I'm going to make edits to the title and description of this PR to correct style issues.

Storing label names in the trace server

bhufmann: I think the back-end support can be implemented outside of the scope of this PR. However, it needs to be done shortly after.

I created an issue #474 so the required additional changes can be defined there. However, it's unlikely that they would be made soon. At the moment @arfio is working on finishing this PR when they have free time, but they don't have much free time these days.
Clarify that re-labeling the trace doesn't change the trace files

bhufmann: Secondly, we need to be clear that the renaming of experiment name doesn't change any file resources (i.e. the trace files).,

I agree it's best clarify this before merging this PR. I moved this discussion into its own issue #475

Given that reworking the entire menu is taking. a while I suggest we live with the current rendering present (currently the user needs to resize the menu in order to reflect the most recently selected trace. Other than that, all of the requested changes have been implemented

[x] Commit has been modified per the contribution guidelines
[x] Typos have been fixed as per @arfio's feedback
[x] You can easily click between menu items and their changes are reflected
[x] "Trace: " now always appears
[x] @ssmagula's and @mirsky-work's feedback regarding the styling has been implemented

I also made a modification to the selected item colour as having it as blue with the black bar had too much of a contrast between them.

@thefinaljob Thank you for the update!
I agree with @bhufmann on not merging as it is now. I'm uncomfortable with merging a feature feels unfinished when the timeline of when it will be completed is unclear since currently no one is actively working on finalizing this feature.
At this stage in the project we're working on making the tool feel more stable and polished and adding this feature as it is now would be a step backwards for polish. Allowing users to label traces is convenient, but doesn't add enough user value to justify making the tool feel less polished.


Provide more context in Syntax Error messages

If many rules start with the same literal expression it can be difficult to understand where the generated parser encountered syntax in its parse tree.
Imagine the rules:
ONE "one" = FOO BAR
TWO "two" = FOO BAZ
FOO "foo" = "/"
BAR "bar" = "r"
BAZ "baz" = "z"

{ message: 'Expected foo but end of input found.',
  expected:
   [ { type: 'other', description: 'foo' } ],
  found: null,
  offset: nn,
  line: x,
  column: y,
  name: 'SyntaxError' }

It would be nice if the generated parser provided the rule as context in the message if this is at all possible, like so: rule: 'one'

I implement part of this in #225

Judging by the example you want to see some parent rule of the rule whose description ends up in the message in the rule property. But how would you decide what rule to put there in case like this?
a = b
b = c
c = d
d "d" = "d"

Here the message will talk about d, but one could put any of a, b, c into rule.
Also, do you want this just for debugging, or for something user-facing?

No answers from the reporter, closing.


SSL disabling

There is no clear method to disable ssl verification.

Where? do you have some example?

The point is im using a testing environment with no ssl certificate. Rhis
package is probably built on top of a curl request. When i try to use it, a
"no ssl certificate" error pops up.
While using native curl requests in php, we can disable ssl verification
(curl_set_opt...).
On Wed, 28 Feb 2024, 1:20 am Cristian Ferreyra, @.***>
wrote:

Where? do you have some example?
—
Reply to this email directly, view it on GitHub
https://github.com/google-gemini-php/laravel/issues/2#issuecomment-1967896004,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APU44VU7AOGBHKZWVKSNRB3YVZS5FAVCNFSM6AAAAABD3UYNZSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNRXHA4TMMBQGQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

Hello @hellanya925,
First of all, thank you for your feedback.
I think it would not be right to disable SSL requests on a package-specific basis. The problem may be related to your PHP configuration.
Can you try the solution on the site below?
https://wpquark.com/kb/misc/server-management/fixing-curl-ssl-connection-issue-php-ini/

maybe related to guzzle:
$this->client = new GuzzleClient(['defaults' => [
'verify' => false
]]);


Fix lint errors

@Rosey I’ve fixed these separate after merging your other PR, so I’m going to close this.


add rubocop / rubocop-rails

Closing this out since I no longer work here 😓  (though it's a nice stretch goal for someone else to do later!)


Switch to GitHub Actions for CI

Motivation for changes:
Second try, first in #2451
Try out github actions as a replacement for circleci
Hopefully we don't need to maintain custom docker images this way
This also move the changelog updating script to running on actions. The wiki now pulls from github repo and pushes changes back, so changes can be made directly on github wiki repo.
Caveats:
It's a couple minutes slower than circleci.
To Do:

[x] Get it working
[x] Verify we like it better than circleci
[x] Add a release workflow

@paranoidi @liiight @cvium I'm pretty happy with this, you guys on board? My prime motivation is not needing to maintain docker images.


Shutdown federalist-users org in GH

After completing the SCR migration, shutdown the federalist-users org since it is no longer necessary.
Background

[x] Depends on #2080

Acceptance Criteria

[x] Update Netlify CMS auth to no longer validate users in the federalist-users org.
[x] Verify they are user and have uaa identity and then verify if active in UAA.
[x] Transition OAuth apps to cloud-gov

Org deleted


Create gaia.json

Travis tests has failed
Hey RicciLorenzo,
Please read the following log in order to understand why the tests failed.
It'll be awesome if you fix what's wrong and commit the changes.
npm test
><EMAIL_ADDRESS>test /home/travis/build/bluzi/name-db
> mocha

  name files
    ✓ should contain valid JSON
    ✓ should contain a lowercase name, same as the filename
    ✓ should not have duplicate names
    1) should have ISO-639-3 language codes
    ✓ should have correct structure (116ms)

  Translations
    ✓ should be lowercase

  Sex
    ✓ should be "m", "f" or "u"
    ✓ should be lowercase

  7 passing (289ms)
  1 failing

  1) name files
       should have ISO-639-3 language codes:
     Error: gre is not a valid ISO-639-3 language code in gaia.json
      at Context.it (test/test.js:52:27)

npm ERR! Test failed.  See above for more details.

Thanks @RicciLorenzo!
Great addition!
merged #1


#159054020 Build out articles pagination

What does this PR do?
Paginating articles
Description of Task to be completed?

Paginate all the articles

How should this be manually tested?

Clone this branch

git clone -b  ft-pagination-159054020 git@github.com:andela/ah-jarvis.git

cd ah-jarvis

create and activate a virtual env

pip install -r requirements.txt

python manage.py migrate

python manage.py runserver

Screenshots?
Articles response

What are the relevant pivotal tracker stories?
#159054020

Coverage increased (+0.02%) to 91.153% when pulling 6ecf0b46bd2e9222a07d18787a8052d9e0746116 on ft-pagination-159054020 into beb5945537dd4eea891924a478598ad79bd20d60 on develop.

@DennisWanjiru ok. I had not noticed the magic of Django. Then just work on limit and offset and let me know when its ready

I have tested the feature and it is not working as expected.

@asamisellah I just fixed it try now

@DennisWanjiru I've tested the feature after the changes you've made and it works as expected.

please include the parameters for the endpoint on your PR for example GET /api/articles?title=<title>

Tested it and it's working as expected.

@Tittoh  what did you mean by your first comment?

@jacksono the arguments to pass on the url were missing on the PR. It has been added. GET /api/articles/?limit=<int>&offset=<int>

@jacksono The PO just advised me to have 12 articles per page and I have made those change. I think this PR is therefore ready for final review. Thanks

The Implementation looks good. But maybe you can make the pagination work on comments


Update 01_available_engines.rst

Added fmap to available engines

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

Comparison is base (4ab1a30) 84.92% compared to head (d8bc962) 84.92%.

:exclamation: Current head d8bc962 differs from pull request most recent head 2d4d788. Consider uploading reports for the commit 2d4d788 to get more accurate results

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #531   +/-   ##
=======================================
  Coverage   84.92%   84.92%
=======================================
  Files         200      200
  Lines       26385    26385
=======================================
  Hits        22408    22408
  Misses       3977     3977

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


feat: Add email address to SearchResultDetails

Resolves #336
Previously a facility's email address was not displayed in the SearchDetailsResult. This renders the email.
What changed

Implemented logic to conditionally display the facility's email address.
Added an SVG icon for email addresses.
Email addresses with a value of none or<EMAIL_ADDRESS>are filtered out with a v-if statement. (See the images below. I can remove this if necessary.)

Testing instructions
Open the app, click on a doc and check out their email!

https://github.com/all-contributors please add @evan-desu  for code

@all-contributors please add @evan-desu for code


Light brightness not working

Describe the bug
I have a dimmer switch connected to Tuya Smart.
I forced the configuration of this device to be recognized as "Light".
The brightness on HomeBridge is not updated from Tuya App, it can only be 0 or 100%.
When trying to update the brightness from Home, an error appears in the logs & the Brightness is not updated if the value is not 0 or 100%.
Logs
[11/13/2022, 11:31:45 AM] [TuyaWebPlatform] Retrying authentication after previous error.
[11/13/2022, 11:31:45 AM] [TuyaWebPlatform] Requesting new token
[11/13/2022, 11:31:45 AM] [TuyaWebPlatform] Sending HTTP GET request to /homeassistant/skill - Header: {"name":"Discovery","namespace":"discovery","payloadVersion":1}.
[11/13/2022, 11:31:45 AM] [TuyaWebPlatform] Device type for "Canapé" is overruled in config from switch to: "light"
[11/13/2022, 11:31:45 AM] [TuyaWebPlatform] [Canapé] deviceConfig: {
  data: { online: true, state: true },
  name: 'Canapé',
  icon: 'https://images.tuyaeu.com/smart/icon/ay1525342462043yjwZs/1649161943e29c2229c70.png',
  id: 'bf8e765deaae2a6f32scaf',
  dev_type: 'light',
  ha_type: 'switch',
  config: {
    min_brightness: '0',
    max_brightness: '1000',
    light_characteristics: [ 'Brightness' ],
    old_dev_type: 'switch'
  }
}
[11/13/2022, 11:31:45 AM] [TuyaWebPlatform] Existing Accessory found [Name: Canapé] [Tuya ID: bf8e765deaae2a6f32scaf] [HomeBridge ID: fd574750-7ca3-46fa-ab29-63d64f59060b]
[11/13/2022, 11:31:45 AM] [TuyaWebPlatform] [Canapé] Characteristic.On - {"format":"bool","perms":["ev","pr","pw"]}
[11/13/2022, 11:31:45 AM] [TuyaWebPlatform] [Canapé] Characteristic.Brightness - {"format":"int","perms":["ev","pr","pw"],"unit":"percentage","minValue":0,"maxValue":100,"minStep":1}
[11/13/2022, 11:31:45 AM] [TuyaWebPlatform] [Canapé] Characteristic.Brightness - Tried to set brightness but failed to parse data.
 { online: true, state: true }
[11/13/2022, 11:31:58 AM] [TuyaWebPlatform] [Canapé] - Requesting device state
[11/13/2022, 11:31:58 AM] [TuyaWebPlatform] [Canapé] - Creating new debounced promise
[11/13/2022, 11:31:58 AM] [TuyaWebPlatform] [Canapé] - Triggering debouncedDeviceStateRequest
[11/13/2022, 11:31:58 AM] [TuyaWebPlatform] [Canapé] - Unsetting debouncedDeviceStateRequestPromise
[11/13/2022, 11:31:58 AM] [TuyaWebPlatform] [Canapé] - Resolving resolveDeviceStateRequest from cache
[11/13/2022, 11:31:58 AM] [TuyaWebPlatform] [Canapé] Characteristic.On - [GET] true

Steps To Reproduce

Go to Tuya Smart.
Switch on the light & set brightness to 50%. The light brightness is updated to 50% in real life.
Restart HomeBridge.
The dimmer is considered as "on", but the brightness is set to 100%.
Go to the Home app
The device is "on" and the brightness is 100%. But the light is in reality on, but with 50% brightness.
Change the Brightness, still on the Home app, to 50%.
The light doesn't change brigthness. The device on the Home app appears "disconnected". Logs of Tuya plugin in Homebridge display errors.

Plugin Version
Up-to-date : @milo526/homebridge-tuya-web v1.1.2
Homebridge Config
{
   "name": "TuyaWebPlatform",
   "options": {
       "username"<EMAIL_ADDRESS>       "password": "Thibault-31031990",
       "countryCode": "33",
       "platform": "tuya"
   },
   "defaults": [
       {
           "id": "Canapé",
           "device_type": "light",
           "min_brightness": "0",
           "max_brightness": "1000", // Tried with 100 or 1000
           "light_characteristics": [
               "Brightness"
           ]
       }
   ],
   "scenes": false,
   "hiddenAccessories": [
       "Lumière bar",
       "Guirlande bar"
   ],
   "platform": "TuyaWebPlatform"
}

Device Config
{
  "header": {
    "code": "SUCCESS",
    "payloadVersion": 1
  },
  "payload": {
    "devices": [
      {
        "data": {
          "online": True,
          "state": False
        },
        "dev_type": "switch",
        "ha_type": "switch",
        "icon": "https://images.tuyaeu.com/smart/icon/15439983441dp9ar3ey4r_0.png",
        "id": "37733038dc4f22a257d8",
        "name": "Guirlande bar"
      },
      {
        "data": {
          "online": True,
          "state": True
        },
        "dev_type": "switch",
        "ha_type": "switch",
        "icon": "https://images.tuyaeu.com/smart/icon/ay1525342462043yjwZs/1649161943e29c2229c70.png",
        "id": "bf8e765deaae2a6f32scaf",
        "name": "Canapé"
      },
      {
        "data": {
          "online": True,
          "state": False
        },
        "dev_type": "switch",
        "ha_type": "switch",
        "icon": "https://images.tuyaeu.com/smart/icon/15439983441dp9ar3ey4r_0.png",
        "id": "37733038dc4f22a23ded",
        "name": "Lumière bar"
      },
      {
        "data": {},
        "dev_type": "scene",
        "ha_type": "scene",
        "id": "kzxo3kM16ruTMSej",
        "name": "\\"Lumière salon\\" Switch:OFF"
      },
      {
        "data": {},
        "dev_type": "scene",
        "ha_type": "scene",
        "id": "A4VANEHnOEFEUXlf",
        "name": "\\"Lumière salon\\" "
                                              "Brightness:210Percent"
      },
      {
        "data": {},
        "dev_type": "scene",
        "ha_type": "scene",
        "id": "V4Knfvis5I7aMWzh",
        "name": "\\"Lumière salon\\" "
                                              "Brightness:467Percent"
      }
    ],
    "scenes": []
  }
}

Additional Context
Just thank you for your work.

what switches are you using? I'm also having similar issues. I use treat life smart dimmers and switches

In your logs it says:

[11/13/2022, 11:31:45 AM] [TuyaWebPlatform] [Canapé] Characteristic.Brightness - Tried to set brightness but failed to parse data.
{ online: true, state: true }

That last part misses the brightness information.
Tuya does not provide information on the brightness of your light to the API that this plugin uses. Sadly there is nothing I can do to change that since I am in no way affiliated with them.
You should be able to continue using this plugin without the dimming capabilities or you could use the plugin developed by Tuya: https://github.com/tuya/tuya-homebridge

Thank you for looking into it :)
Unfortunatly, I try the Tuya plugin, but didn't worked :/ Never the Tuya cloud has been able to push any state to the dimmer (but could read the state ... odd ...)
Thank you anyway for your work !


new commands

killbots
killplayers
range ( example: minion start id end id amout name)
minion id amout name startmass maxstartmass speed (good idea)
lms start
lms  end
kicksmallerbots
kickbiggerbots
kilsmallerbots
killbiggerbots
repetition (example: minion amout to repeat time for 1 repeat amout name)

Please dont try to make this Project Ogar Ul because Ogar Ul have many Features

but one thing is good for server

Ok ,
We did state that we don't want tooo many commands , but as we remove useless ones we might add new commands to the list :)


Provider: AWS Provider

Summary
AWS Provider
TODOs:

[x] provider class and backends method
[ ] tests for backends with mocks
[ ] tests with real devices

Details and comments
Part of #1

FYI @Morcu


Formatting don't work on 2.1.1

Formatting is always a default one no matter what.
This is only on latest version (2.1.1).

Formatting is always a default one no matter what.
This is only on latest version (2.1.1).

did you solve this issue? I have the same one


docs: updates readme to make storage option more clear

Proposed changes:

The default storage parameter does not work and not clearly documented that it should be kept inside the params object.

Status (please check what you already did):

[x] made PR ready for code review
[ ] added some tests for the functionality
[x] updated the documentation
[ ] updated the changelog

Thank you for the PR! Approved 👍


Processor Output:  Dynamic Maps causing "Key must be an integer"

Hi
I have some processor code that dynamically builds the output queue maps but it seems to fail on an IllegalArgumentException.
Code
The processor simply does stuff to generate a map with two keys and each key's value is basically a vector of maps.

(defmethod q/processor ::data-splitter
 ;; this processor splits a message across multiple channels
 [ctx input]

 (println "===> Processor: data-spliter")
 (tap> "======input=========")
 (tap> ctx)
 (tap> "======input=========")
 (tap> input)
 ;; need to take the input and split it up
 (let [proc-ctx (:ctx (:config ctx))
       outkeys  (keys (:out (:config ctx)))
       ikey (:receivekey proc-ctx)
       ;; channel keys are the splitkeys
       fullinput (if (nil? ikey) {} (get-in input ikey))
       splitdata (select-keys fullinput outkeys)
       output  (into {} (map vector (keys splitdata) (vals splitdata)))
       ]
   (println "--data split complete--")
   (tap> "----------------->> Output class:")
   (tap> (class output))
   (tap> "----------------->> Output keys:")
   (tap> output)

   output

   ))

The resulting data just looks like so:
   {
      :scheduled_arrivals [ {:flt 1 , :gate "C2} {:flt 2 , :gate "C3} {:flt 3 , :gate "B2}]
     :scheduled_departuress [ {:flt 4 , :gate "D2} {:flt 5 , :gate "G3} {:flt 6 , :gate "T2}]
    }

Error Message
2023-10-27T01:26:31.829Z Aurelius ERROR [cues.queue:1013] - :util.processors/airports-schedule-splitter ({:input :util.cues/airports-schedule-raw} -> {:scheduled_arrivals :util.cues/arrivals, :scheduled_departures :util.cues/departures})
                              java.lang.Thread.run              Thread.java:  833
java.util.concurrent.ThreadPoolExecutor$Worker.run  ThreadPoolExecutor.java:  635
 java.util.concurrent.ThreadPoolExecutor.runWorker  ThreadPoolExecutor.java: 1136
               java.util.concurrent.FutureTask.run          FutureTask.java:  264
                                               ...
               clojure.core/binding-conveyor-fn/fn                 core.clj: 2047
                          cues.queue/start-join/fn                queue.clj: 1204
                         cues.queue/processor-loop
queue.clj: 1160
                         cues.queue/processor-step                queue.clj: 1005
                          cues.queue/processor-run                queue.clj:  951
                         cues.queue/default-run-fn                queue.clj:  941
                             cues.queue/merge-meta                queue.clj:  921
                         cues.queue/assoc-meta-out                queue.clj:  909
                            clojure.core/reduce-kv                 core.clj: 6928
                       clojure.core.protocols/fn/G            protocols.clj:  175
                                   clojure.core/fn                 core.clj: 6917
                                               ...
                      cues.queue/assoc-meta-out/fn
              queue.clj:  912
                               clojure.core/update                 core.clj: 6239
                                clojure.core/assoc                 core.clj:  193
                                               ...
java.lang.IllegalArgumentException: Key must be integer

What is interesting is that if I build the map myself .. ie. hard code in a map at the end of the processor, it seems to work but I cannot seem to do it dynamically. Any suggestions on how to fix this ?
Thank you for all help, .. in advance!

Just to add context:  the supplied input is
{:arrivals [{:baggage_claim nil
                  :filed_airspeed 360
                  :actual_on "2023-10-30T22:36:28Z"
                  :filed_ete 6300
                  :terminal_origin "2"
                  :estimated_on "2023-10-30T22:36:28Z"
                  :route_distance 724
                  :gate_destination nil
                  :scheduled_on "2023-10-30T22:10:00Z"
                  :gate_origin nil
                  :diverted false
                  :actual_off "2023-10-30T20:57:16Z"
                  :scheduled_out "2023-10-30T20:15:00Z"
                  :atc_ident nil
                  :fa_flight_id "ETH308-1698524165-schedule-1701p"
                  :type "Airline"
                  :progress_percent 100
                  :ident_iata "ET308"
                  :aircraft_type "B738 "
                  :route nil
                  :estimated_off "2023-10-30T20:57:16Z"
                  :actual_in nil
                  :scheduled_off "2023-10-30T20:25:00Z"
                  :cancelled false
                  :ident_icao "ETH308"
                  :actual_out nil
                  :position_only false
                  :estimated_out "2023-10-30T20:15:00Z"
                  :status "Landed / Taxiing"
                  :arrival_delay 1936
                  :seats_cabin_coach nil
                  :codeshares_iata ["KP1039" "XY6308" "UL3654" "AI7546"]
                  :terminal_destination "1A"
                  :scheduled_in "2023-10-30T22:20:00Z"
                  :ident "ETH308"
                  :operator "ETH"
                  :operator_icao "ETH"
                  :inbound_fa_flight_id "ETH830-1698502691-schedule-86p"
                  :operator_iata "ET"
                  :origin {:code "HAAB"
                           :code_icao "HAAB"
                           :code_iata "ADD"
                           :code_lid nil
                           :timezone "Africa/Addis_Ababa"
                           :name "Bole Int'l"
                           :city "Addis Ababa"
                           :airport_info_url "/airports/HAAB"}
                  :blocked false
                  :codeshares ["SKK1039" "KNE6308" "ALK3654" "AIC7546"]
                  :seats_cabin_business nil
                  :flight_number "308"
                  :seats_cabin_first nil
                  :registration "ET-ASJ"
                  :estimated_in "2023-10-30T22:52:16Z"
                  :filed_altitude nil
                  :departure_delay 0
                  :destination {:code "HKJK"
                                :code_icao "HKJK"
                                :code_iata "NBO"
                                :code_lid nil
                                :timezone "Africa/Nairobi"
                                :name "Jomo Kenyatta Int'l"
                                :city "Nairobi"
                                :airport_info_url "/airports/HKJK"}}]
      :departures []
      :scheduled_arrivals []
      :scheduled_departures []
      :links {:next "/airports/HKJK/flights?start=2023-10-30T17%3A46%3A41Z&end=2023-10-31T17%3A46%3A41Z&cursor=1f0de2e17fbf8e5"}
      :num_pages 1}

...and this it chokes on this method in cues.queue/assoc-meta-out
....

;; on line 912 - the assoc seems to get a key that is not an integer and it expects one

(defn- assoc-meta-out
[out m]
(reduce-kv
 (fn [out k v]
   (cond-> out
     v (assoc k (update v :q/meta merge-deep m))))  ;; <--- this assoc is the choke point
 {}
 out))

Hi @jamesnyika , thanks for posting the issue, I'll have a look at this over the next couple of days.

@jamesnyika , to clarify, when you say "The resulting data just looks like so":
   {
      :scheduled_arrivals [ {:flt 1 , :gate "C2} {:flt 2 , :gate "C3} {:flt 3 , :gate "B2}]
     :scheduled_departuress [ {:flt 4 , :gate "D2} {:flt 5 , :gate "G3} {:flt 6 , :gate "T2}]
    }

Do you mean that this is the value of the output binding that you return in your ::data-splitter processor?
If so, then a couple of observations:

Double check that the keys in your output map correspond exactly to your output bindings: :scheduled_departuress looks like a typo.

The output binding map that processor returns is a mapping between bindings and messages:
{:binding-1 msg-1
 :binding-2 msg-2}

The thing is that messages placed on queues must always be maps. But your values above appears to be a vector of maps, which I think is the cause the error you are seeing (I should probably have a more robust check on the processor output values to provide a more informative error message).
If your intention was in fact to put multiple messages on the output queues, then your problem boils down to what you asked about in the other issue that you posted: #9 . In which case I would recommend the solutions we discussed in that thread.

This is unrelated to your error, but I noticed that you're getting (:receivekey proc-ctx) from the processor :config property. Is this a user-specified processor configuration option? Then the recommended way to do that is via :opts:
{:id   ::data-splitter
 ...
 :opts {:receivekey :my-key}}

(defmethod q/processor ::data-splitter
  [{{:keys [receivekey]} :opts} msgs]
  ...)

While specifying arbitrary user options directly in the top level processor config technically works:
{:id   ::data-splitter
 ...
 :my-options {:receivekey :my-key}}

This was not the intended API usage and may not be supported in the future.

Hi ..and thank you for your answer
Your Qn: Do you mean that this is the value of the output binding that you return in your ::data-splitter processor?
Ans: Yes.. This is correct. Thank you for pointing out the typo but it was only in this message to you that I made it. It is correct in my code.
I think the breakthrough information here is ...
Here msg-1 and msg-2 are each a single message, and each must be a map. But your values above appear to be vectors of maps, which I think is the cause the error you are seeing (I should probably have a more robust check on the processor output values to provide a more informative error message).

the fact that the values to a binding MUST BE MAPS. It did not occur to me. Even if you do not change your error message, it might be good to highlight this in the documentation (or both depending on your bandwidth). I will attempt to wrap the data in a map to start with and see how that goes. It is the easiest solution for now. If that solves it I will close this out with a confirmation message.
On the last item you mentioned, I did not realize that this key could be used in that way. I pass in :receivekey as a way for the processor to know what key to use in the incoming data to pull out what it needs to process. I will check and see what you have written with respect to this keyword ... could be nice code clarification technique on my end and reduce the size of my context maps for each processor.
thanks and stay tuned!

Even if you do not change your error message, it might be good to highlight this in the documentation (or both depending on your bandwidth).

This is a good suggestion. The queue primitives section does mention this, but the graph processors section should definitely also explicitly do so. At minimum I will update the docs to reflect this.

On the last item you mentioned, I did not realize that this key could be used in that way. I pass in :receivekey as a way for the processor to know what key to use in the incoming data to pull out what it needs to process. I will check and see what you have written with respect to this keyword ... could be nice code clarification technique on my end and reduce the size of my context maps for each processor.

I don't know how helpful it will be, but at least it will bring your code in alignment with the intended API usage. The intention was for the top level processor attributes to be restricted to the API, and for :opts to be the way to pass arbitrary configuration options to your processor.
{; only API attributes allowed here
 :id   ::processor
 :in   {:input-binding ::input-queue}
 :out  {:output-binding ::output-queue}
 :opts {; here is where you put user config
        :receivekey :my-key}}

Ok.. I can confirm that ensuring the value of the output map must ALSO be a map fixed the issue. I quite literally performed this
{:scheduled_arrivals   {:flights [{:flt 1 :gate "C2"} ...]}
 :scheduled_departures {:flights [{:flt 4 :gate "D2"} ...]}}

Thank you .. this solves and closes the issue


External identity provider in tenant

The wiki mentions:

External identity providers currently only work on single tenant installations and root tenants of multitenant instances. It may be possible without too much work to make it work on tenant applications if the plug-in is installed both on the root tenant and the subdomain tenant application. Please get in touch if you need this.

We're trying to find a way to make this work as described, but it's not working. We have the same custom OpenID Connect authentication plugin installed in both the root tenant and a child tenant. Logging in with the plugin on the root tenant works as expected. When attempting to login using the plugin from the child tenant, the callback URL sent to the OP is that of the root tenant which is obviously incorrect. I've confirmed that the callback URL parameter is correctly being set in the child tenant's instance of the plugin, so it seems the lines are getting crossed by passport.js.
While reviewing the passport.js implementation, it looks like you're using a single instance for all tenants which could be the issue since both instances of the plugin would share the same strategy name. In an attempt to work around this, I cloned my plugin and changed the strategy name to 'oidc-tenant' in both the object returned from the authentication method and in the callback URL. Unfortunately this didn't work either as it results in a Unknown authentication strategy "oidc-tenant" error on the /auth/login-with/oidc-tenant route. This makes me think that the real problem is that getState().auth_methods within the child tenant are getting read from the root tenant's configuration (maybe?).
Any ideas of what else we can try?

After some more digging, it appears the issue with my second attempt (the one with unique strategy names) failed because of it's only loading the strategies into passport for the root tenant: https://github.com/saltcorn/saltcorn/blob/master/packages/server/app.js#L200
Adding a method to saltcorn-data/db/state.ts that returns an array containing the states of all of the tenants:
/**
 * Get all of the tenants
 * @function
 * @returns {State[]}
 */
const getTenants = (): State[] => {
  return Object.values(tenants)
};

and then changing it to load the identity providers from all of the tenants:
  for (const state of Object.entries(getTenants())) {
    for (const [authName, auth] of Object.entries(state.auth_methods)) {
      passport.use(authName, auth.strategy);
    }
  }

Seems to work, but still requires all of the auth methods to have unique names. It'd be better for all of the tenants to have their own passport instance so the names only need to be unique within a particular tenant. I'll look into that next.
I'm still new to the codebase and don't have any experience with Typescript so let me know if I've missed something or if there's a better way around this.

While possible, adding the passport instance onto the tenant state is suboptimal because it's in the @saltcorn/data package and has nothing to do with data. I'm looking at adding it within the server package directly. Let me know if is also incorrect.
I also found that the getTenants method above is unnecessary since the list of tenants are accessible from tenants in @saltcorn/admin-models.


[Feature request] add delayed display of dialog

Would be great if you could configure a delay for showing the dialog.
Maybe taking inspiration from https://github.com/tasomaniac/DelayedProgress
This is useful when you have a task that could take very little time, for not spawning a dialog in that case.

Thanks for the feedback!
I'll add it in the next update.

This was added in the v0.4.0. The method names and the implementation are different but it should be possible to achieve the same behavior.


Change XCTAssertTrue with XCTAssertEqual

Working on this exercise, I had a difference in one decimal. And I realized that would be better to replace all those XCTAssertTrue with XCTAssertEqual in order to get a better feedback.
Please, have a look and let me know.
Thanks!

Good idea.
Do you mind doing a PR for the swift3 branch as well?
https://github.com/exercism/xswift/blob/swift3/exercises/space-age/SpaceAgeTest.swift

Fixed! That print was the motivation of this PR.
I'll do a PR for the swift3 branch too.

Thank you!


fix: updated deps

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Collapse ending brace to the same line in JavaScript

It would be nice if VS code bring this feature. Collapse ending brace to the same line in JavaScript.

The TypeScript/JavaScript language support provides the ranges and could support such a feature.

See https://github.com/microsoft/vscode/issues/3352 [folding] Collapse ending brace to the same line

Hey @aeschli, I tried a lot but i don't find that feature. as a contributor could please add this feature in the next edition. as you can every popular code editor has this feature. collapse code block in same line. It's increasing readability.

Hey @ArturoDent, #3352  has no solution.