Slow Collect and Execute on QbeastWriter during indexing

What went wrong?
During the indexing of a dataset of 12.4GB using 2 numerical columns one of the most time-consuming jobs have been to execute and collect in the QbeastWriter on the following line:
https://github.com/Qbeast-io/qbeast-spark/blob/15667c27bb2cc6d76cecd680d61e22fa8f571d49/src/main/scala/io/qbeast/spark/sql/qbeast/QbeastWriter.scala#L171
https://github.com/Qbeast-io/qbeast-spark/blob/15667c27bb2cc6d76cecd680d61e22fa8f571d49/src/main/scala/io/qbeast/spark/sql/qbeast/QbeastWriter.scala#L173

Hypothesis and know issue
Our current implementation for writing data is split into two stages

Calculation of an estimated CubeWeight map.
It is done by partition and requires a collect() in order to broadcast the variable and be able to put each row in a correspondent cube. Plus, aggregation of min/max of the columns indexed is required to know the space we are indexing.

Reorganization of data and writing of multiple rows of the same cube in a single parquet file

Repartition the data by cube and state. Minor penalization is equivalent to delta writing time.
File I/O writing. All the records from a cube are written in a single parquet file, not allowing the parallelization of the write operation.

As documented by @alexeiakimov :
An attempt to index 1GB of data on a single node with qbeast-spark-nodep_2.12-nightly-d44ce4c.jar has shown that the following three jobs are the main contributors to the time:

execute and collect() at QbeastWriter- 2.4 min. Method collect is called on the dataset after all the records are written to destination media
https://github.com/Qbeast-io/qbeast-spark/blob/15667c27bb2cc6d76cecd680d61e22fa8f571d49/src/main/scala/io/qbeast/spark/sql/qbeast/QbeastWriter.scala#L171
https://github.com/Qbeast-io/qbeast-spark/blob/15667c27bb2cc6d76cecd680d61e22fa8f571d49/src/main/scala/io/qbeast/spark/sql/qbeast/QbeastWriter.scala#L173
min/max aggregation. Model - 1.8 min. Method agg is called on the dataset to compute min and max values for each dimension
https://github.com/Qbeast-io/qbeast-spark/blob/15667c27bb2cc6d76cecd680d61e22fa8f571d49/src/main/scala/io/qbeast/spark/model/Model.scala#L213
collect() on OTreeAlgorithm - 1.7 min. Method collect is called on the dataset to compute the cube weights.
https://github.com/Qbeast-io/qbeast-spark/blob/15667c27bb2cc6d76cecd680d61e22fa8f571d49/src/main/scala/io/qbeast/spark/index/OTreeAlgorithm.scala#L248

The hypothesis is that in all three cases the traversing of the full dataset is responsible for the big latency. It is clear that in the ColumnInfo case our code has minimal impact, because it simply computes min and max for two columns, however, it has a latency of the same magnitude as QbeastWriter and OTreeAlgorithm, where we do a lot of computations.
How to reproduce?

Code that triggered the bug, or steps to reproduce:

Relevant config for the SparkSession in the Azure Cluster:

            --packages org.apache.hadoop:hadoop-azure:2.7.0,com.azure:azure-storage-blob:12.8.0,com.azure:azure-storage-common:12.8.0,com.microsoft.azure:azure-storage:2.0.0,io.delta:delta-core_2.12:0.8.0 \
            --conf spark.executor.cores=3 \
            --conf spark.driver.memory=12g \
            --conf spark.executor.memory=12g \
            --conf spark.eventLog.enabled=true \
            --conf spark.sql.extensions=io.qbeast.spark.sql.QbeastSparkSessionExtension \
            --conf spark.driver.extraJavaOptions="-Dqbeast.index.size=2000000""

We load the table store_sales from the TPC-DS 100Gb dataset, which has a size of 12.4GB in delta format. We index it by using the primary key attributes and we write them on qbeast format:

val store_sales =<EMAIL_ADDRESS>val tmpDir =<EMAIL_ADDRESS>store_sales.write.mode("overwrite").format("qbeast").option("columnsToIndex", "ss_item_sk,ss_ticket_number").save(tmpDir)

Branch and commit id:
Main on 15667c27bb2cc6d76cecd680d61e22fa8f571d49

Spark version:
3.1.1

Hadoop version:
2.7

Are you running Spark inside a container? Are you launching the app on a remote K8s cluster? Or are you just running the tests in a local computer?
Running Spark Shell from the Jupyter Notebook in the Kubernetes deployment on Azure

@polsm91 do you think this bug is still relevant?

I don't think this is still relevant. Cleaning a bit the issues :smile:


Enhanced the overall styling

Enhanced the overall styling
Description
deployed link : https://sayan404.github.io/Image-Editor/
Checklist

[x] I am making a proper pull request, not spam.
[x] I've checked the issue list before deciding what to submit.

Related Issues or Pull Requests
(Write your answer here.)
Add relevant screenshot or video (if any)
(Add here)

ok @ZiaCodes


Message when I follow a feature and arrived at an intersection

URL
Any
How to reproduce the issue?
Hi,
If I follow (touch F) a feature with a new way or polygon and arrived at an intersection with several features, the follow-up stops because ID don't know which feature I want to follow : it is clearly the good choice.
But the message is quite strange : "This feature can't follow another feature because multiple features are connected to the last two points. Add another point manually to continue."
Why "the last 2 points" ? The problem is only at the last point, the intersection point where other features are.
In transifex, we have other messages like this one :

This feature can't follow a line because multiple lines are connected to the last two points. Add another point manually to continue.
This feature can't follow an area because multiple areas are connected to the last two points. Add another point manually to continue.

Best regards
Screenshot(s) or anything else?
No response
Which iD Editor versions do you see the issue on?
Released version at openstreetmap.org/edit
Which browsers are you seeing this problem on?
Chrome

Related #8750.


Debian squeeze

The fact "ansible_distribution_release" return "NA" for Debian Squeeze with break the apt database.
The best solution I found was change this for another fact. "ansible_lsb.codename" is OK, returning "squeeze", like expected.
Testing in others versions was OK in dozens servers, too.

hi @welrbraga
The CI tests fails with this PR. Can you please investigate and fix?
Thanks!

Closing non-responsive and outdated PR.


Search filter

Redirect all Bing searches or only searches that originate from Cortana. Might need to explain what it redirects by default in the settings menu (Some sort of helper text). By default Chrometana redirects only searches that originate from Cortana....
resolve #16

Code looks good, trying on my test virt now

This could've/should've been pulled out into a function which would make unit testing it easier in the future: https://github.com/TheoBr/Chrometana/pull/17/files#diff-30376e8249ccb7e6d99b75f6dcb969e7R10

I think All Bing search might be a little too general. For example I want the Bing searches for updates to go to bing but I want every other search to use google. I think A lot of people will check the box and not realize that they are disabling bing searches for updates which are very helpful.

@ClairePitman : I think trying to explain Windows 10's strange help request behavior would be too big a design challenge to use in that way.
I feel as though the toggles @kyleladd added are representative of the two use cases that we should cover:

Changing Cortana's search engine
Hiding Bing forever

A third use-case of hiding "all of Bing but WIndows 10 help dialogues" is hard to conceptualize, and even harder to explain (as I'm sure you noticed as you tried hahaha).
For now, I think this works perfect, and I would love to ship it in the beta.

Bing searches for updates being what source (form=____)? the settings app? The sources that I've identified so far are listed https://github.com/TheoBr/Chrometana/issues/16 .
Anyway, the logic is there as to how we can implement those additional toggles in the future. Right now, I'm not sure as to what instance you are trying to explain (sorry). A video or pictures would help greatly.
Thanks

@kyleladd : I think she's referring to queries made from the settings app as "Bing searches for updates", which is &form=S00028

I'm merging this

kk, intially have Chrometana only redirect Cortana searches; allow the user to opt into redirect all Bing searches; once they have opted to redirect all Bing searches, provide exclusions according to their source (such as the settings app:S00028): https://github.com/TheoBr/Chrometana/pull/18


Tunable coupler fixes

Bug fixes and a CZ fidelity function for a tunable coupler.
Added projection for fidelities in larger Hilbert spaces.

Codecov Report

Merging #45 (6ac6ba0) into dev (50052a5) will decrease coverage by 0.29%.
The diff coverage is 13.23%.

@@            Coverage Diff             @@
##              dev      #45      +/-   ##
==========================================
- Coverage   46.92%   46.62%   -0.30%
==========================================
  Files          35       35
  Lines        4492     4525      +33
==========================================
+ Hits         2108     2110       +2
- Misses       2384     2415      +31

Impacted Files
Coverage Δ

c3/main.py
0.00% <0.00%> (ø)

c3/utils/log_reader.py
0.00% <0.00%> (ø)

c3/utils/parsers.py
0.00% <ø> (ø)

c3/utils/qt_utils.py
35.14% <11.11%> (-0.64%)
:arrow_down:

c3/libraries/fidelities.py
18.50% <22.22%> (+0.21%)
:arrow_up:

c3/experiment.py
55.44% <100.00%> (-0.38%)
:arrow_down:

c3/optimizers/c2.py
0.00% <0.00%> (ø)

Continue to review full report at Codecov.

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

If this is required for the Chalmer's simulation, I guess we should just go ahead and merge this to dev asap even if there are still some rough edges?

The Chalmers branch can be super dirty for the next 48 hours. We just need
specific things to work.
Cleanup and push over to main branch can be done later at a leisurely pace.
On Sat, 6 Feb 2021, 19:49 Anurag Saha Roy<EMAIL_ADDRESS>wrote:

If this is required for the Chalmer's simulation, I guess we should just
go ahead and merge this to dev asap even if there are still some rough
edges?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/q-optimize/c3/pull/45#issuecomment-774514503, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAH3Q4LU7ZRQRFJXRKTOKY3S5V6LZANCNFSM4XGLQB2Q
.


Upgrade Python to 3.9

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Version upgrade

What is the current behavior? (You can also link to an open issue here)
Python 3.8 is being used

What is the new behavior (if this is a feature change)?
Marqo-base image 37 will be used (has Python 3.9)
Python 3.9 will be used for image and tests.
Vector regression tests for all encoding models have been added

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
No

Have unit tests been run against this PR? (Has there also been any additional testing?)
Performance and compatibility testing have been done here

Related Python client changes (link commit/PR here)

Related documentation changes (link commit/PR here)

Other information:

Please check if the PR fulfills these requirements

[ ] The commit message follows our guidelines
[ ] Tests for the changes have been added (for bug fixes/features)
[ ] Docs have been added / updated (for bug fixes / features)

Stella model raw embeddings have been generated


fix(nested rows): fixed border color and align

Contributes to #2505
Design review fixes done for the nested rows. Alignment of columns fixed as well as border color changed
What did you change?
scss changed and also condition for getCellProps and geRowStyles in useNestedRows changed
How did you test and verify your work?
storybook

tests are failing


Fix creating UFS file without a parent directory

We have been using default CreateOptions when creating a UFS file.
This can fail in some configuration when a file is written to an Alluxio
directory not backed by a UFS one. This change adds the option when UFS
file writer creates the UFS file so the directory is created
automatically.
cherry-pick committed PR Alluxio/alluxio#12618

LGTM

alluxio-bot, merge this please


Search: Rename/customize IndexBatch rather than completely rewrite it

With the recent changes I've made to add the Accept header, they did not affect the batch operations because it created an HttpMessage outside the generated operations, i.e. it duplicated code to which the generator was not privy.
Rather than do that and for long-term maintainability, we should see if we can rename and customize the existing IndexBatch class which has the same structure. The code generation is much more robust than it was when these classes were written and should allow us to just call the DocumentRestClient.CreateIndexRequest method directory, which returns the HttpMessage in the same way that was duplicated, sans the missing "Accept" header and the different-but-similar model.

Unfortunately this still doesn't work.  We need to have an async code path for serialization via ObjectSerializer and it would require hacks that copied to an intermediate buffer to get this working with the generated method.


Removed UIKit framework from OSX builds

Builds were failing on OSX due to inclusion of UIKit.

Wonderful thanks for your help!


Add loadbalancer-idle-timeout.config

These all need to be separate PRs, with more specific use case details for each.

GitHub's Pull Requests are designed to be per-branch, not per-commit. If you want to send 5 Pull Requests in GitHub you'll have to do it using 5 branches. The only exception would be if you wait for each Pull Request to be merged before submitting the next one... (https://help.github.com/articles/using-pull-requests/#sending-the-pull-request).


Add YAML Config

Currently we define variables all around the code, it would be good to consolidate these into a single place and also for objects within Create World.

Have currently added JSON config. seems to be working atm.


Consumer parallelism?

Maybe I am being dense, but client API seems rather odd to me.  Kafka::Group#run takes a number of threads.  At first glance this may give you the idea that it will allow for parallelism when processing the messages.  But Kafka::Group#run also takes a queue, and when it creates the thread pool is creates a Kafka::Consumer for each thread and calls Kafka::Consumer#run on each.  Kafka::Consumer#run in turn just pushed messages it receives into the queue, rather than say, taking a Proc to process the messages with.
So what is the point of Kafka::Group#run having a number of threads argument if all messages will just be pushed into a single queue?  Passing a value other than 1 will make no difference.  If the user wants some parallelism they will have to create their own thread pool to consume from the queue.  They will also have to recreate the partitions provided by the Kafka streams.
Also, since the call to Kafka::Group#run just queues the messages, they will be considered processed by the Java consumer client, and thus potentially have their offsets committed, whether or not the messages have been truly handled by the code consuming messages off the queue, thus potentially resulting in the loss of all messages in the queue if the client dies.

I think you make good points. Sending in a proc for each thread could work well.
Considering the current design, using more fetcher threads with a single thread safe message queue enables more flexibility in ensuring that the processor of messages always had a steady stream as a fetcher can only work on one partition at a time. If one partition is going slow, other threads are still able to fill the sink.
You last point is valid as well. These changes could work well.

A little more on the third point. If you had a series of processes which were handling the messages on each fetcher thread, you could still lose a message in the queue if the processing function failed in some fashion after dequeing the message because from the Kafka consumer that message was read. Consumer offset auto commit defaults to enabled and at 60 second intervals. It's much more likely that you would crash and not have committed yet versus crashing and losing internal queued messages. Running very low offset intervals increases the load on your zookeeper nodes which may bottleneck the Kafka client.
Regardless, I like the idea of getting the processing closer to the fetcher threads. Some of this API reflects the nature of it's original primary use: passing messages off Kafka to a logstash managed queue.

Re: more threads.  Apologies if I am wrong, as am just digging into Kafka, but in my reading of the Kafka Java/Scala consumer it appears that the code internally creates one thread per partition to fetch messages (a ConsumerFetcherThread), so there is no blocking the processor on a slow partition.
The ConsumerFetcherThreads in turn write the fetched messages into a queue stored in the PartitionTopicInfo objects.  These queues are also stored within the KafkaStream objects.  And it is from them that messages fetched via the iterator.
It would seem that if you call createMessageStreamsByFilter with a map for a topic with a value of 1, what you end up with is one thread per partition writing to a single queue stored in the single returned KafkaStream object.
Basically, the Scala/Java client appears to be doing the same work you are recreating in Ruby of multiplexing messages from multiple partitions into a single queue.
Passing a value higher than 1 to Kafka::Group#run adds no parallelism.  The Java Kafka client will create the same number of fetcher threads (one per partition).  It will merely result in having multiple KafkaStreams, each with its own queue, to which different partition are multiplexed into, and then having the Ruby code multiplex those further into a single queue.

Re: loosing messages. You are right.    At first I thought the Kafka client was keeping track of processed messages, but as you point out it just commit them on an interval when auto commit if on, which is pretty bad as there is no guarantee the message will indeed have been processed by the time the offset if committed.
  For this you would have to expose commitOffsets in Ruby.
The Ruby code could also take care of this.  For instead, if the consumer took a Proc to process messages, it could assume that any message for which the Proc did not raise an exception was processed successfully.  It could then track the highest offset per partition processed successfully and call commitOffsets at some interval to commit processed offsets.

As I said before, I see the merit in what you are stating. I'm open to proposed changes. I think this issues was masked to me prior because I almost always scale out my processes with single threads on small EC2 instances so they scale with load, which basically masked this issue.

See #33 for a proposal.

Closing as #33 was merged.


term request: gravidity inclusion criterion

o label: gravidity inclusion criterion
definition:"An inclusion criterion that defines and states one or more gravidity statuses of an organism, which, if met, makes the entity suitable for a given task or participation in a given process.”
o examples of usage: 'pregnant’, ‘not pregnant'
o ontology term requester: MIABIS2.0

Discussed on OBI Dev call on 2/12/18: Approved, and consider whether requestors also need "para inclusion criterion"?

The initial request was taken care of by
https://github.com/obi-ontology/obi/commit/3a89e6ca50d0d57f72c191ba7e21f7088f9ce373
I'll leave this open, since I don't know the meaning of "para inclusion criterion". That question still needs to be taken care of

Sorry close that unintentionally. Issue needs to stay open for "para inclusion criterion" discussion

Mathias..have a look here: https://en.wikipedia.org/wiki/Gravidity_and_parity

Dan: Thanks for clarifying your comment. I will consult with the term requesters.


Moves 404 error codes to Transformer level

What's this PR do?
Sets 404 error codes at the transformer level.
How should this be manually tested?
Hit the below endpoints to make sure everything returns a 404 status code.
/signups/z
/kudos/z
/reportbacks/z
/reportback-items/z
/campaigns/z
Also ensure that hitting /signups returns a 200 status code.
Any background context you want to provide?
Refs https://github.com/DoSomething/northstar/issues/313
Found the above bug returning a signup object but throwing a 404 status code because there was a signup but couldn't find a kudos associated with the reportback. This informed us to move status codes to transformer level.
What are the relevant tickets?
Fixes #6261 and fixes 404 error code in #6274 - 403 error code fix to come in separate PR.

:+1: from me!


"ModuleNotFoundError: No module named 'apscheduler'"   after Home Assistant update

Hi,
after the latest Home Assistant update i got this error:
ModuleNotFoundError: No module named 'apscheduler'
To fix it i just had to adjust this one Line in the "manifest.json" file:
"requirements": ["apscheduler"],
After a restart everything was running fine again.
Please add this in github, so that others can avoid this issue.
I love your addon! It is running very stable and reliably for me!

Hi Iamth1st,
Thanks a lot for the tip, I was wondering how to make the addon load again! :)

Thanks, worked fine. Great work.

Fix is now merged into main branch, thanks!


Test the canary lambda directly in smithy-rs

Test the canary lambda, including the CDK constructs and permissions as part of smithy-rs CI

Implemented in https://github.com/smithy-lang/smithy-rs/pull/3525


New Lines not preserved in Notes field of ChromeOS Devices

The "Notes" field under ChromeOS device management in the G Suite Admin Console allows for linebreaks, however the GAM command used to edit this field does not.  The string "\n" is taken literally by the notes parameter when performing a gam update cros command.  Linebreaks are especially helpful in the notes field.
An example of a command where this might be used:
gam update cros 647cf127-ab85-4c2b-b07e-63ad1b705c19 notes "Screen broken 2016-09-15\nSent out for repair 2016-09-16.  See Ticket #1234.\nReturned to service 2016-09-22"
Full steps to reproduce the issue:

Run a command to update the notes field containing "\n" for line breaks, such as our example above
View the Notes field of the record edited in the G Suite Admin Console under Device Management>Chrome Devices>{Serial number of the device}

Expected outcome: The notes should appear with linebreaks where "\n" was entered

Screen broken 2016-09-15
Sent out for repair 2016-09-16.  See Ticket #1234.
Returned to service 2016-09-22

Actual outcome: The full notes string is shown, including "\n" which are interpreted literally, with no linebreaks.

Screen broken 2016-09-15\nSent out for repair 2016-09-16.  See Ticket #1234.\nReturned to service 2016-09-22

fixed by #308 and GAM 3.8 release.


Fix sanitize message function.

This should fix the mutiple @ mentions.

Perhaps it'd be more atomic if you split sanitize(text) into sanitize_text(text) and sanitize_token(token).

LGTM and merged.


use GoReleaser

we need to use GoReleaser to releaser each version of berjis

we decided to publish berries in other ways.


More tests

TITLE
Description
Description of the pull request changes and motivation.
Checklist

[ ] Linked to Github Issue
[ ] Unit tests added
[ ] Integration tests added.
[ ] This change requires new documentation.

[ ] Documentation has been added/updated.

Codecov Report

Merging #210 (cb39793) into main (4abe561) will increase coverage by 6.23%.
The diff coverage is 83.70%.

@@            Coverage Diff             @@
##             main     #210      +/-   ##
==========================================
+ Coverage   51.94%   58.18%   +6.23%
==========================================
  Files          68       69       +1
  Lines        6557     6849     +292
==========================================
+ Hits         3406     3985     +579
+ Misses       3151     2864     -287

Impacted Files
Coverage Δ

src/libfuncs/ap_tracking.rs
64.51% <0.00%> (+64.51%)
:arrow_up:

src/values/enum.rs
77.41% <33.33%> (+51.79%)
:arrow_up:

src/libfuncs/bool.rs
90.20% <90.20%> (ø)

src/libfuncs.rs
63.33% <100.00%> (+4.08%)
:arrow_up:

src/libfuncs/enum.rs
98.47% <100.00%> (+0.11%)
:arrow_up:

src/libfuncs/felt252.rs
94.64% <100.00%> (+0.09%)
:arrow_up:

src/types/enum.rs
100.00% <100.00%> (+26.88%)
:arrow_up:

... and 8 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Help: How to check for a note type/name in song script?

What do you need help for ?
Please note that the documentation is still under construction.
let's say i have a script that plays on Bopeebo, i add the onDadHit() function and want to do smth if certain note type is hit

how can i check for note type/name?

note.noteType is the index of the note's note type
For example, if you added 2 note types in the charter (for example: Default Note and Hurt Note), Default Note will have an index of 0 and Hurt Note will have an index of 1.
Hope that helped.

note.noteType is the index of the note's note type For example, if you added 2 note types in the charter (for example: Default Note and Hurt Note), Default Note will have an index of 0 and Hurt Note will have an index of 1. Hope that helped.

for some reason it does not work.. hm

these are the notes added in chart editor ^

and this is the code that SHOULD be called if they're pressed ^
but eightbit does not play any animation

note.noteData % 4?
Or do this:
global["eightbit"] = eightbit;
And add this in your note script (8bit Note.hx):
function onDadHit(direction:Int) {
     switch(direction) {
        case 0:
            global["eightbit"].playAnim("singLEFT", true);
        case 1:
            global["eightbit"].playAnim("singDOWN", true);
        case 2:
            global["eightbit"].playAnim("singUP", true);
        case 3:
            global["eightbit"].playAnim("singRIGHT", true);
     }
}


test-branch/execute-job/comment-from-wrong-user-on-pr/9029ec8c-78a1-43ed-936f-b7bc7e41dfc8

PR for testing ede9e2c1ff256c6038694acb73bc734f586de16f

/canonical/self-hosted-runners/run-workflows ede9e2c1ff256c6038694acb73bc734f586de16f


perf(storage, mdbx): set rp augment limit

Resolves https://github.com/paradigmxyz/reth/issues/5228
Explanation
https://github.com/paradigmxyz/reth/blob/a3eaa036edba2f21a4d372c1fba4b0b1d5405f40/crates/storage/db/src/implementation/mdbx/mod.rs#L102-L127
Results
Before 12:10 – default rp augment limit value (which is around 137 million)
After 12:25 – custom rp augment limit value set to 256 * 1024

Note: disregard the drop of the Freelist chart, it's due to node having a slight downtime during the restart and many blocks being inserted at once.

this does mean the db will grow faster on heavy freelist-related scenarios?

Yes, but this effect should be small, because only large insertions will lead to new allocations.


Need some help setting up

Hey, I just need some guidance with the first few steps of setting this up, please get back to me if you can, discord name is hairyarab

Hello @k9in3 I have added you in Discord, please check your friend requests.

Hello can u help me how to do it thanks.

Hello @Sp0ngeb0bb, I can't seem to add you in Discord. Mind adding me instead? My tag is i2rys

Hello @k9in3 I have added you in Discord, please check your friend requests.

hi mate i think i’ve added you on discord but im having the same issues i’ll explain on there? my discord is altvybz. but i think i have already sent you a friend request.

Hello @k9in3 I have added you in Discord, please check your friend requests.

hi mate i think i’ve added you on discord but im having the same issues i’ll explain on there? my discord is altvybz. but i think i have already sent you a friend request.

Yes and because you have already added me I'll be closing this case.


Revert "[Feature][Github] Add stale mechanism to auto mark issues and PRs as stale"

Reverts apache/dolphinscheduler#8075 due to https://github.com/apache/dolphinscheduler/pull/8075#issuecomment-1014062644

Codecov Report

Merging #8079 (c066495) into dev (7f36246) will decrease coverage by 0.04%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##                dev    #8079      +/-   ##
============================================
- Coverage     41.38%   41.33%   -0.05%
+ Complexity     3724     3719       -5
============================================
  Files           637      637
  Lines         27118    27118
  Branches       3074     3074
============================================
- Hits          11223    11210      -13
- Misses        14820    14833      +13
  Partials       1075     1075

Impacted Files
Coverage Δ

...he/dolphinscheduler/common/enums/SqoopJobType.java
0.00% <0.00%> (-88.89%)
:arrow_down:

...e/dolphinscheduler/remote/NettyRemotingClient.java
50.70% <0.00%> (-2.82%)
:arrow_down:

...inscheduler/common/task/sqoop/SqoopParameters.java
74.00% <0.00%> (-2.00%)
:arrow_down:

Continue to review full report at Codecov.

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


undefined local variable or method opts

/usr/local/bundle/gems/judges-0.0.25/lib/judges/commands/update.rb:88:in `cycle': undefined local variable or method `opts' for an instance of Judges::Update (NameError)

      raise "Failed to update correctly (#{errors.size} errors)" unless opts['quiet']
                                                                        ^^^^
	from /usr/local/bundle/gems/judges-0.0.25/lib/judges/commands/update.rb:53:in `block in run'
	from <internal:kernel>:187:in `loop'
	from /usr/local/bundle/gems/judges-0.0.25/lib/judges/commands/update.rb:51:in `run'
	from /usr/local/bundle/gems/judges-0.0.25/bin/judges:70:in `block (2 levels) in <class:App>'
	from /usr/local/bundle/gems/gli-2.21.1/lib/gli/command_support.rb:131:in `execute'
	from /usr/local/bundle/gems/gli-2.21.1/lib/gli/app_support.rb:298:in `block in call_command'
	from /usr/local/bundle/gems/gli-2.21.1/lib/gli/app_support.rb:311:in `call_command'
	from /usr/local/bundle/gems/gli-2.21.1/lib/gli/app_support.rb:85:in `run'
	from /usr/local/bundle/gems/judges-0.0.25/bin/judges:127:in `<top (required)>'

@rultor release, tag is 0.0.26

@rultor release, tag is 0.0.26

@yegor256 OK, I will release it now. Please check the progress here

@rultor release, tag is 0.0.26

@yegor256 Done! FYI, the full log is here (took me 8min)


Can I use scss-lint in webpack? If can,how?

I want to use a lint for scss in webpack and find this repo.
Can I use it in webpack?
If can,how?
I can not find the answer in the documentation.

There is a webpack loader called scss-lint-loader (setup instructions here), but scss-lint is pretty slow.
A much faster alternative that is more viable with webpack is the sasslint-loader, which is based off of the node package sass-lint. sass-lint unfortunately doesn't have all features that scss-lint does.

@karlhorky  Yes!  I know sass-lint. What's more, here's what the author says.

Note This loader is under development and does not yet provide line numbers for errors and warnings in SCSS/SASS source files.

So I have not use it.
Finally, I take a compromise, using gulp-scss-lint instead, and found it not bad.

Yeah, I'm not sure why that's in the readme. It reports line numbers just fine for me :)

Try this one: https://github.com/alleyinteractive/sasslint-webpack-plugin
That's the only one that works for me.

For new projects it looks like stylelint (with stylelint-webpack-plugin) is a nice, extensible solution.


Makes index usable for non-varchar foreign keys

If field foreign_key varchar(64) references integer PK none of the indexes can be used (at least in MySQL though). Converting any foreign PK to varchar-compatible type solves the problem. Performance hit is much lower than if the index is not used at all.

@ansata2001 you may find my workaround for this problem useful. See #1512


README: Ruby and JSON code fences

This PR adds syntax highlighting to the README, to improve readability ✨

Merging under the obvious fix policy


RO-3149 Update rpc_release file location

The dep_update script checks the value of the rpc_release
in the rc branch and the current branch, then does things
from there. Currently the location of the file is wrong,
so the script is failing.
Issue: RO-3149

Note: The ELK role lint failures are fixed in https://github.com/rcbops/rpc-openstack/pull/2692


Update installation instructions to clarify current constraints

I tried the library out in a new Expo managed project with expo-dev-client and found that:

It did not compile on Android. The same applied to a React Native 64 and 65 project initialized via npx react-native init SkiaTest --version 0.64.3 and npx react-native init SkiaTest --version 0.65.2. React Native 66 worked as expected.
iOS release builds fail when Bitcode is enabled:

node_modules/@shopify/react-native-skia/libs/ios/libskia.a(raw.SkRawCodec.o)' does not contain bitcode.
You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the
vendor, or disable bitcode for this target. for architecture arm64

Obviously disabling bitcode is not the solution here, we rather want Skia to compile under bitcode enabled - is it something the Skia library really doesn't support at this point?

regardless of what the solution is, these docs are intended to reflect the current state of the library


Code framework

Let's write out a framework detailing how the bot will communicate and the logic used.

We probably want to dm new users, ask them to introduce themselves on #intro, fill out their profile, and join whatever channels they'd like


isogram:  verify ordering of actual/expected

In the Jasmine testing framework, it is convention to:
expect(actual).fn(expected)

But some test suites have the following:
expect(expected).fn(actual)

This causes the error messages to be confusing.
Please verify the isogram exercise to make sure that the expectations are ordered correctly. If they are, then this can be closed.
This issue will help to close #111

Got it

This one is OK and can be closed

Awesome!


Add support for unpoly

https://unpoly.com/

May I ask the motivation behind adding Unpoly to the Ludic? 🤓

May I ask the motivation behind adding Unpoly to the Ludic? 🤓

I haven't really done much investigation yet and I'm not even sore it'll be a viable option. But Ludic is not trying to enforce usage of HTMX (it could be also used solely for static HTML) so in future there could be other options.
Anyway this is not anywhere even close to the top of my backlog. So it is more like an idea.

But Ludic is not trying to enforce usage of HTMX (it could be also used solely for static HTML) so in future there could be other options.

I liked this idea. Using Ludic to only create HTML fragments.
I think support for unpoly should not be a priority at the moment.
Thank you for answering my question 🙏.


Add a new section "More About Me" between "Ready Made Sections"  and "That's  about it!"

torvalds.dev is analyzing the ticket

From the JSON files above, it appears that this task is related to creating an additional content section in a React Single Page Application (SPA). The added "More About Me" section should appear between the "Ready Made Sections" and the "That's about it!" sections.
Based on this information, I can suggest several steps that may need to be taken to complete this task:

You will need to create a new JSON file within the 'src/content/' directory, perhaps named 'MoreAboutMeContent.json'. This file should contain the relevant text and title for this section.

Assuming this SPA follows a similar pattern to serve content as seen in 'MissionContent.json', 'MiddleBlockContent.json' and 'ProductContent.json', you should make sure that the new section ("More About Me") is appropriately designed and follows the same structure.

Update the appropriate render method of the React component that is responsible for displaying these sections to include the new section you've created.

Without knowing more about the structure and code of your React application, it's hard to provide specific file names. However, the most relevant files would likely be in the 'src/content/' directory and any component files that handle rendering these sections, which could potentially be in a 'src/components/' or 'src/pages/' directory.
Before proceeding, please ensure you are familiar with React and have a decent understanding of how the SPA is structured. Keep the changes in a new branch until the new section works as expected. Once testing is done, you can merge it to the main branch.


Whitelist cert-manager created ingresses

Signed-off-by: Fredrik Lack<EMAIL_ADDRESS>
What this PR does / why we need it:
Whitelist all cert-manager created ingresses.
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #745
Special notes for your reviewer:
First contribution for me here, let me know if anything is off, adjustments and/or common tips.
Release note:

/ok-to-test

I'm having trouble following up this PR. Which version should we expect this to be released?

This will be in v0.6.0 onward 😄


Nvim: Can not disable sentence_capitalization

Maybe I am doing something wrong?
local lsp = require("lspconfig")
lsp.harper_ls.setup {
        settings = {
	        ["harper-ls"] = {
		        userDictPath = "~/.config/nvim/harper_dict.txt",
		        diagnosticSeverity = "hint",
		        sentence_capitalization = false,
	        }
        },
}

You're missing a nested linters map.
Try this:
lsp.harper_ls.setup {
        settings = {
	        ["harper-ls"] = {
		        userDictPath = "~/.config/nvim/harper_dict.txt",
		        diagnosticSeverity = "hint",
                        linters = {
		                sentence_capitalization = false,
	                }
                }
        },
}

Ahh that works, no idea how I missed that, its clear in the docs. thanks for taking the time to help out!


java.lang.RuntimeException: Encountered unknown SQL type jsonb with column data. IntrospectedColumn(data,jsonb,null,true)

Describe the bug
Prisma crashes as soon as there is a table in a schema that includes a postgres JSONB column. This happens even if the prisma gql spec is not including a definition for the table.
The server throws the following error and the prisma cli is not able to deploy any managed schema updates.
java.lang.RuntimeException: Encountered unknown SQL type jsonb with column data. IntrospectedColumn(data,jsonb,null,true)
...
"message":"Encountered unknown SQL type jsonb with column policy. IntrospectedColumn(policy,jsonb,null,false)"}}
java.lang.RuntimeException: Encountered unknown SQL type jsonb with column data. IntrospectedColumn(data,jsonb,null,true)
	at scala.sys.package$.error(package.scala:26)
	at com.prisma.deploy.connector.jdbc.DatabaseInspectorBase.$anonfun$getTable$6(DatabaseInspectorBase.scala:51)
	at scala.Option.getOrElse(Option.scala:121)
	at com.prisma.deploy.connector.jdbc.DatabaseInspectorBase.$anonfun$getTable$5(DatabaseInspectorBase.scala:51)
	at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:233)
	at scala.collection.Iterator.foreach(Iterator.scala:937)
	at scala.collection.Iterator.foreach$(Iterator.scala:937)
	at scala.collection.AbstractIterator.foreach(Iterator.scala:1425)
	at scala.collection.IterableLike.foreach(IterableLike.scala:70)
	at scala.collection.IterableLike.foreach$(IterableLike.scala:69)
	at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
	at scala.collection.TraversableLike.map(TraversableLike.scala:233)
	at scala.collection.TraversableLike.map$(TraversableLike.scala:226)
	at scala.collection.AbstractTraversable.map(Traversable.scala:104)
	at com.prisma.deploy.connector.jdbc.DatabaseInspectorBase.$anonfun$getTable$4(DatabaseInspectorBase.scala:48)
	at slick.dbio.DBIOAction.$anonfun$map$1(DBIOAction.scala:43)
	at slick.basic.BasicBackend$DatabaseDef.$anonfun$runInContextInline$1(BasicBackend.scala:171)
	at scala.concurrent.Future.$anonfun$flatMap$1(Future.scala:303)
	at scala.concurrent.impl.Promise.$anonfun$transformWith$1(Promise.scala:37)

I understand that prisma does not support JSONB queries, but it should not crash if it find an (prisma) unmanaged table.
To Reproduce
create a table with:
CREATE TABLE "project$latest"."cards" (
  id character varying(25) PRIMARY KEY NOT NULL,
  board_id integer NOT NULL,
  data JSONB
);

Then run prisma introspect, which creates
type Card @db(name: "cards") {
  id: ID! @id
  boardId: Int! @db(name: "board_id")
  data: Json
}

Then run prisma deploy:
$ prisma deploy
...
ERROR: Whoops. Looks like an internal server error. Search your server logs for request ID: local:cjw7sajg1lrc607987s1ik2fz

{
  "data": {
    "deploy": null
  },
  "errors": [
    {
      "message": "Whoops. Looks like an internal server error. Search your server logs for request ID: local:cjw7sajg1lrc607987s1ik2fz",
      "path": [
        "deploy"
      ],
      "locations": [
        {
          "line": 2,
          "column": 9
        }
      ],
      "requestId": "local:cjw7sajg1lrc607987s1ik2fz"
    }
  ],
  "status": 200
}

Interestingly, that error even happens if the table is not added to the gql spec via introspection.
Expected behavior
prisma ignores un-managed tables, or is at least able to deal with unsupported column types in a graceful way.
Screenshots
n/a
Versions (please complete the following information):

Connector: [e.g. Postgres, MySQL, MongoDB]
Prisma Server: 1.33
prisma CLI: prisma/1.33.0 (darwin-x64) node-v11.13.0
OS: OS X High Sierra

Additional context
Add any other context about the problem here.

Closing as a duplicate of # 4190. Please add this information as a comment there.


Support HNSW fallback with the original implementation

Originally posted by @liliu-z in https://github.com/zilliztech/knowhere/pull/746#discussion_r1728632856

/assign @alexanderguzhva


feat: add modal to import charts

SUMMARY

Similart to https://github.com/apache/incubator-superset/pull/11884 and https://github.com/apache/incubator-superset/pull/11910, this PR adds a modal to import charts using the new import framework.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TEST PLAN

Tested manually and added unit tests.
ADDITIONAL INFORMATION

[X] Has associated issue: https://github.com/apache/incubator-superset/issues/11167
[ ] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[ ] Introduces new feature or API
[ ] Removes existing feature or API

Codecov Report

Merging #11923 (b934e6e) into PISQL-9 (f34a3d2) will decrease coverage by 3.83%.
The diff coverage is 93.33%.

@@             Coverage Diff             @@
##           PISQL-9   #11923      +/-   ##
===========================================
- Coverage    67.47%   63.64%   -3.84%
===========================================
  Files          918      462     -456
  Lines        44674    28478   -16196
  Branches      4254        0    -4254
===========================================
- Hits         30143    18124   -12019
+ Misses       14428    10354    -4074
+ Partials       103        0     -103

Flag
Coverage Δ

cypress
?

javascript
?

python
63.64% <93.33%> (-0.39%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

superset/charts/commands/importers/v1/__init__.py
93.25% <85.71%> (-0.65%)
:arrow_down:

superset/charts/api.py
80.60% <100.00%> (+1.74%)
:arrow_up:

superset/charts/commands/importers/dispatcher.py
80.64% <100.00%> (+1.33%)
:arrow_up:

superset/charts/schemas.py
100.00% <100.00%> (ø)

superset/datasets/schemas.py
96.39% <100.00%> (ø)

superset/db_engines/hive.py
0.00% <0.00%> (-85.72%)
:arrow_down:

superset/db_engine_specs/hive.py
54.61% <0.00%> (-29.44%)
:arrow_down:

superset/db_engine_specs/presto.py
69.95% <0.00%> (-12.34%)
:arrow_down:

superset/db_engine_specs/sqlite.py
65.62% <0.00%> (-9.38%)
:arrow_down:

superset/utils/celery.py
96.42% <0.00%> (-3.58%)
:arrow_down:

... and 510 more

Continue to review full report at Codecov.

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


Implement Check Order Payment Status API

Create an endpoint that returns Order Payment status based on Order Id

Create a new GetPayment method on PaymentRepository to get payment details using payment ID
Get Order details from OrderRepository
Create a method on PaymentService to get PaymentStatus by ID, the payment ID can be found on the Order entity
Return payment Status

it doesn't need to call MercadoPago gateway

graph LR
  subgraph Presentation Layer
    A[API Controller]
  end
  subgraph Application Layer
    B[Payment Status Use Case]
  end
  subgraph Domain Layer
    C[Payment Repository]
    D[Payment Entity]
  end
  subgraph Infrastructure Layer
    E[Payment Gateway]
  end

  A --> B
  B --> C
  C --> D
  C --> E
  D -.-> C
  E -.-> C

Explanation:

Presentation Layer:

API Controller: This is the entry point for the API request. It receives the payment ID from the request and delegates the task to the Use Case.

Application Layer:

Payment Status Use Case: This is responsible for handling the business logic of retrieving the payment status. It interacts with the Payment Repository to fetch the payment details.

Domain Layer:

Payment Repository: This is an interface that defines how to interact with the data storage mechanism for payment details. It can be implemented using a database or any other persistence mechanism.
Payment Entity: This represents a payment in the system. It contains data like payment ID, status, amount, etc.

Infrastructure Layer:

Payment Gateway: This is a third-party service that handles the actual payment processing and status updates. The Payment Repository interacts with the gateway to retrieve the latest status.

Flow:

The API Controller receives a request with a payment ID.
The API Controller calls the Payment Status Use Case, passing the payment ID.
The Payment Status Use Case uses the Payment Repository to fetch the payment details.
The Payment Repository interacts with the Payment Gateway to retrieve the latest payment status.
The Payment Gateway returns the payment status to the Payment Repository.
The Payment Repository returns the payment status to the Payment Status Use Case.
The Payment Status Use Case returns the payment status to the API Controller.
The API Controller returns the payment status to the client.

Benefits of Clean Architecture:

Loose Coupling: The layers are independent of each other, allowing for easier maintenance and modifications.
Testability: Each layer can be tested independently.
Flexibility: The system can easily adapt to changes in the implementation details of specific layers.
Maintainability: Changes in one layer are less likely to affect other layers.

This is a basic example, and you can adapt it to your specific needs by adding more layers or components. The key is to follow the principles of clean architecture to create a maintainable and scalable system.

graph LR
  subgraph Presentation Layer
    A[API Controller]
  end
  subgraph Application Layer
    B[Payment Status Use Case]
  end
  subgraph Domain Layer
    C[Payment Repository]
    D[Payment Entity]
  end
  subgraph Infrastructure Layer
    E[Payment Gateway]
  end

  A --> B
  B --> C
  C --> D
  C --> E
  D -.-> C
  E -.-> C

Explanation:

Presentation Layer:

API Controller: This is the entry point for the API request. It receives the payment ID from the request and delegates the task to the Use Case.

Application Layer:

Payment Status Use Case: This is responsible for handling the business logic of retrieving the payment status. It interacts with the Payment Repository to fetch the payment details.

Domain Layer:

Payment Repository: This is an interface that defines how to interact with the data storage mechanism for payment details. It can be implemented using a database or any other persistence mechanism.
Payment Entity: This represents a payment in the system. It contains data like payment ID, status, amount, etc.

Infrastructure Layer:

Payment Gateway: This is a third-party service that handles the actual payment processing and status updates. The Payment Repository interacts with the gateway to retrieve the latest status.

Flow:

The API Controller receives a request with a payment ID.
The API Controller calls the Payment Status Use Case, passing the payment ID.
The Payment Status Use Case uses the Payment Repository to fetch the payment details.
The Payment Repository interacts with the Payment Gateway to retrieve the latest payment status.
The Payment Gateway returns the payment status to the Payment Repository.
The Payment Repository returns the payment status to the Payment Status Use Case.
The Payment Status Use Case returns the payment status to the API Controller.
The API Controller returns the payment status to the client.

Benefits of Clean Architecture:

Loose Coupling: The layers are independent of each other, allowing for easier maintenance and modifications.
Testability: Each layer can be tested independently.
Flexibility: The system can easily adapt to changes in the implementation details of specific layers.
Maintainability: Changes in one layer are less likely to affect other layers.

This is a basic example, and you can adapt it to your specific needs by adding more layers or components. The key is to follow the principles of clean architecture to create a maintainable and scalable system.

@coderabbitai create mermaid sequenceDiagram graph

@coderabbitai create mermaid sequenceDiagram graph


Allow backward compatible changes in CRD

Let's consider the following scenario.
I have a knative controller that reads and write camel K integrations. It imports the camel k apis, version 0.3.3.
After some point in time we release 0.4.0 with an additional field "version".
Technically the knative controller can ignore that field, but in practice it can't, because the kubernetes unmarshalling fails when mapping the integration json into the 0.3.3 structs (that miss the "version" field).
Everything would be easier if we ignore unknown properties by default, by sending them into a "unknownFields" map struct during unmarshalling.
This would make the handshake between a super controller and camel k integrations easier, because the super-controller can depend on camel k version 0.4.x+ and not a precise version.
Versioning the resources does not help.

From a different angle, doesn't this mean that changes the camle-k model/apis should be regarded as a breaking change not suitable for a minor release?

Currently yes. If we consider that package is "public", meaning that other projects can build on top of that (and I currently count at least two opensource projects building on top of that: Knative and Syndesis), they should not be broken at every release.
I don't think we'll solve anything doing major vs. minor reasoning, because people often want to use latest Knative with latest Camel K and expect that to work. API is now v1alpha1, but we should solve that problem before v1.


⚠ ClamAV has degraded performance

In 5f8088b, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 585 ms

Resolved: ClamAV performance has improved in 9940d0c.


[SB/EH] Fix stress CI runs

Builds SB and EH in dockerfile

Green CI run https://dev.azure.com/azure-sdk/internal/_build/results?buildId=2906310&view=results

done some cleanup and stress CI is still green https://dev.azure.com/azure-sdk/internal/_build/results?buildId=2914698&view=logs&j=761a1b33-5a1a-5bfd-fa6b-bb82f006016f&t=761a1b33-5a1a-5bfd-fa6b-bb82f006016f


change # to let

Latest angular version complains that "#" is deprecated and "let" should be used instead

Hey, thanks for the PR.
Already fixed in https://github.com/500tech/angular2-tree-component/commit/33aa280ee5b02f4e77a0e7930e5e515ab109e350


Verify the API ids match what target they're in

The Atmel ones are all AT91, we should update them to be target specific. Check the rest.

STM32F7xx: STM32F7
STM32F4xx: STM32F4
LPC177x_LPC178x: LPC17
LPC23xx_LPC24xx: LPC24
AT91SAM9Rx64: AT91SAM9Rx64
AT91SAM9X35: AT91SAM9X35
Make sure we change the pins library too.

Done in ghi-electronics/TinyCLR-Libraries#303


Develop Boundary Diagram for PDS-managed systems

💡 Description

I believe Susan already did this. need to follow up.

Review complete. Up for signature.

Completed, signed, and released. Posted in RISCS


On hover over PR “Files changed” tab, show a popup with the list of files

On hover over the Files changed tab of the page for a pull request, show a popup with the list of files.
For example, when I hover of the Files changed tab of https://github.com/mdn/browser-compat-data/pull/6958, I get a popup showing:
mathml/elements/math.json
mathml/elements/mglyph.json
mathml/elements/mlabeledtr.json
mathml/elements/mo.json
mathml/elements/mspace.json
mathml/elements/mstyle.json
mathml/elements/mtable.json
mathml/elements/mtd.json
mathml/elements/mtr.json

Rationale: It’d be convenient if I didn’t need to actually open the https://github.com/mdn/browser-compat-data/pull/6958/files page just to see the list of which files got touched.

Closing (with no hard feelings), since a downvote from one of the project maintainers seems to be an indication that maybe this isn’t such a good idea after all.

Closing (with no hard feelings), since a downvote from one of the project maintainers seems to be an indication that maybe this isn’t such a good idea after all.

I think that in the past I would have liked to see the file list while leaving a comment, so I wouldn't be opposed to such a feature as long as:

it's limited to ~10 files
it's loaded on hover
it uses the title attribute (.tooltipped is clipped by the tabnav’s overflow:auto)

Example:

It probably isn't a very difficult feature if the title attribute can be updated on the fly on every browser.

I think that in the past I would have liked to see the file list while leaving a comment, so I wouldn't be opposed to such a feature as long as:

it's limited to ~10 files
it's loaded on hover
it uses the title attribute (.tooltipped is clipped by the tabnav’s overflow:auto)

Example:

It probably isn't a very difficult feature if the title attribute can be updated on the fly on every browser.

Maybe it's just:
const tab = select('…')
const getList = cache.function(async () => {
	const data = await api.v4(`…`);
	return data…files;
});
const updateTab = async () => {
	tab.title = (await getList()).join('\n');
}
if (looseParseInt(tab) < 11) {
	tab.title = 'Loading…'
	tab.addEventListener('mouseenter', updateTab, {once: true});
}

Cross-browser testing needed

Maybe it's just:
const tab = select('…')
const getList = cache.function(async () => {
	const data = await api.v4(`…`);
	return data…files;
});
const updateTab = async () => {
	tab.title = (await getList()).join('\n');
}
if (looseParseInt(tab) < 11) {
	tab.title = 'Loading…'
	tab.addEventListener('mouseenter', updateTab, {once: true});
}

Cross-browser testing needed

..with the following query
{
  repository(owner: "sindresorhus", name: "refined-github") {
    pullRequest(number: 3774) {
      files(first: 10) {
        nodes {
          path
        }
      }
    }
  }
}

..with the following query
{
  repository(owner: "sindresorhus", name: "refined-github") {
    pullRequest(number: 3774) {
      files(first: 10) {
        nodes {
          path
        }
      }
    }
  }
}

@fregante You want to load the list on open? Or wait for user to hover?

@fregante You want to load the list on open? Or wait for user to hover?

it's loaded on hover

it's loaded on hover

Almost done.
Calling it?

Almost done.
Calling it?

Let's see it and maybe we can get more comments from Sindre

Let's see it and maybe we can get more comments from Sindre

https://github.com/sindresorhus/refined-github/tree/unknow-feature-name
Took me longer to get the extension to build (npm issue) then to write the whole thing

https://github.com/sindresorhus/refined-github/tree/unknow-feature-name
Took me longer to get the extension to build (npm issue) then to write the whole thing

Looks good for the most part, but Safari doesn't update the tooltip until you move the cursor, which kills the feature for me:

It probably isn't a very difficult feature if the title attribute can be updated on the fly on every browser.

Looks good for the most part, but Safari doesn't update the tooltip until you move the cursor, which kills the feature for me:

It probably isn't a very difficult feature if the title attribute can be updated on the fly on every browser.

I just checked, this isn't fixed by dropping the "Loading" part. Safari only creates/updates the tooltip when the mouse moves. I tried dispatching mousemove/enter events but nothing happened.

I just checked, this isn't fixed by dropping the "Loading" part. Safari only creates/updates the tooltip when the mouse moves. I tried dispatching mousemove/enter events but nothing happened.

Can you find a non-completely-hacky way to implement it via tooltipped?

No luck.

Can you find a non-completely-hacky way to implement it via tooltipped?

No luck.

Saving your code in this commit: 0d8be65a26ee5c6005e5e5a8efdf5fc4b23761e2
But closing and deleting the branch


feat: New Module avm-res-compute-virtualmachine

Add CARML VM module to AVM

@rahalan this is good for me related to changes we discussed. I'll leave the last word on the module to @AlexanderSehr who requested changes there.


Downloading of single and multiple episodes for offline consumption

Thank you for this extremely useful app. Desktop Linux was seriously missing this!
Please allow for easy downloading of single and multiple episodes for offline consumption.

Hi probonopd, I'm glad you're enjoying Cumulonimbus! I'll work on adding this functionality soon.

I've implemented this in release 1.7.0. Please let me know how you think it can be improved :)

I only see a play button and another button that I do not know what it does. But no download button. How do I download an episode?

@probonopd I've only added download buttons to episodes in the Home stream:

I'll add them to the per-podcast view as well. Thanks for pointing this out.

Thanks @z-------------, to be honest the "Explore" tab is all I ever use. I think it should be the first tab and should be selected by default when first opening the app, since without it all other tabs are essentially empty.

@probonopd I probably won't make it default, but I'll work on adding an option to customize the default tab.

Maybe jump to that tab as long as no podcasts are subscribed? I don't think that may users will bother to go to the settings.

Seems like a good idea.

These issues should be addressed in commits c8172ec8ab6344f392f2e152349e54633d003f26
and 5e9725d25f101fdc452f6d3893799e32e5c7d5da, respectively. Please let me know if there are any problems.

Here is the new release.

Thank you very much, very useful.


chore: firecracker scripts as bytes instead of from repo

This moves the firecracker scripts into the firecracker library so we no longer go up to github to get them. This means you can make changes to them in a branch without having to muck with having to change which branch they are pulled from in the repo. Also some refactoring as I learn more about how to handle errors correctly.

bors try

bors try

bors r+


[ts] regression: unable to download electron if behind a proxy

Description
ts branch doesn't seem to work behind a proxy anymore.
Steps to reproduce issue

try to nativefy behind a proxy

Details

Are you nativefying a public website? yes
Full nativefier command used to build your app: nativefier --name "Webex-Teams" --platform linux --arch x64 --electron-version 8.0.1 --tray --single-instance --counter --bounce --honest https://teams.webex.com --verbose
Version of Nativefier (run nativefier --version): d6ab5f7c7f4b4dc5d4037f88d78efb30f8019b6b
Version of node.js (run node --version): v12.14.1
OS: Fedora 31
Error message / stack trace (if any):

$ nativefier --name "Webex-Teams" --platform linux --arch x64 --electron-version 8.0.0 --tray --single-instance --counter --bounce --honest https://teams.webex.com --verbose
Running in verbose mode! This will produce a mountain of logs and is recommended only for troubleshooting or if you like Shakespeare.

Performing async options post-processing.
Inferring user agent for electron 8.0.0 / linux
Grabbing electron<->chrome versions file from https://atom.io/download/atom-shell/index.json
Inferring icon for https://teams.webex.com/ on linux
Inferring icon from store for https://teams.webex.com/ on linux
Allowed icon formats when building for linux: [ '.png', '.ico' ]
Got name Webex-Teams from options. No inferring needed
Sanitized filename for Webex-Teams : Webex-Teams
Cannot automatically retrieve the app icon: Error: connect ECONNREFUSED <IP_ADDRESS>:443
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1134:16) {
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '<IP_ADDRESS>',
  port: 443
}
Unable to infer chrome version for user agent, using 78.0.3904.130
Given chrome 78.0.3904.130 on linux, using user agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.130 Safari/537.36

Preparing Electron app...
Copying electron app from /home/rleinardi/temp/nativefier/app to /tmp/nativefier-9-46-33-app-63148KjEmZwTEQEqH
Writing app config to /tmp/nativefier-9-46-33-app-63148KjEmZwTEQEqH/nativefier.json
No files to inject, skipping copy.
Updating /tmp/nativefier-9-46-33-app-63148KjEmZwTEQEqH/package.json 'name' field to webex-teams-nativefier-ff9bb8

Converting icons...
Option "icon" not set, skipping icon conversion.

Packaging... This will take a few seconds, maybe minutes if the requested Electron isn't cached yet...
  electron-packager Electron Packager 14.2.1
  electron-packager Node v12.14.1
  electron-packager Host Operating system: linux 5.4.13-201.fc31.x86_64 (x64) +0ms
  electron-packager Packager Options: {"arch":"x64","asar":false,"darwinDarkModeSupport":false,"dir":"/tmp/nativefier-9-46-33-app-63148KjEmZwTEQEqH","electronVersion":"8.0.0","name":"Webex-Teams","out":"/home/rleinardi","overwrite":true,"platform":"linux","targetUrl":"https://teams.webex.com/","tmpdir":false,"win32metadata":{"ProductName":"Webex-Teams","InternalName":"Webex-Teams","FileDescription":"Webex-Teams"}} +0ms
  electron-packager Target Platforms: linux +0ms
  electron-packager Target Architectures: x64 +0ms
  electron-packager Inferring appVersion from version in /tmp/nativefier-9-46-33-app-63148KjEmZwTEQEqH/package.json +0ms
  electron-packager Application name: Webex-Teams +5ms
  electron-packager Target Electron version: 8.0.0 +0ms
  electron-packager Ignored path regular expressions: [
  '/\\.git($|/)',
  '/node_modules/\\.bin($|/)',
  '\\.o(bj)?$',
  '/tmp/electron-packager'
] +0ms
  electron-packager Downloading Electron with options {"platform":"linux","arch":"x64","version":"8.0.0","artifactName":"electron"} +0ms
Error during build: GotError [RequestError]: connect ECONNREFUSED <IP_ADDRESS>:443
    at ClientRequest.<anonymous> (/home/rleinardi/temp/nativefier/node_modules/got/source/request-as-event-emitter.js:178:14)
    at Object.onceWrapper (events.js:313:26)
    at ClientRequest.emit (events.js:228:7)
    at ClientRequest.origin.emit (/home/rleinardi/temp/nativefier/node_modules/@szmarczak/http-timer/source/index.js:37:11)
    at TLSSocket.socketErrorListener (_http_client.js:406:9)
    at TLSSocket.emit (events.js:223:5)
    at emitErrorNT (internal/streams/destroy.js:92:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
    at processTicksAndRejections (internal/process/task_queues.js:81:21) {
  name: 'RequestError',
  code: 'ECONNREFUSED',
  host: 'github.com',
  hostname: 'github.com',
  method: 'GET',
  path: '/electron/electron/releases/download/v8.0.0/electron-v8.0.0-linux-x64.zip',
  socketPath: undefined,
  protocol: 'https:',
  url: 'https://github.com/electron/electron/releases/download/v8.0.0/electron-v8.0.0-linux-x64.zip',
  gotOptions: {
    path: '/electron/electron/releases/download/v8.0.0/electron-v8.0.0-linux-x64.zip',
    protocol: 'https:',
    slashes: true,
    auth: null,
    host: 'github.com',
    port: null,
    hostname: 'github.com',
    hash: null,
    search: null,
    query: null,
    pathname: '/electron/electron/releases/download/v8.0.0/electron-v8.0.0-linux-x64.zip',
    href: 'https://github.com/electron/electron/releases/download/v8.0.0/electron-v8.0.0-linux-x64.zip',
    retry: {
      retries: [Function],
      methods: [Set],
      statusCodes: [Set],
      errorCodes: [Set]
    },
    headers: {
      'user-agent': 'got/9.6.0 (https://github.com/sindresorhus/got)',
      'accept-encoding': 'gzip, deflate'
    },
    hooks: {
      beforeRequest: [],
      beforeRedirect: [],
      beforeRetry: [],
      afterResponse: [],
      beforeError: [],
      init: []
    },
    decompress: true,
    throwHttpErrors: true,
    followRedirect: true,
    stream: true,
    form: false,
    json: false,
    cache: false,
    useElectronNet: false,
    method: 'GET'
  }
}

The environmental variable for the proxy are correctly set and working for other tools (e.g. npm):
ftp_proxy=http://localhost:3128/
https_proxy=http://localhost:3128
http_proxy=http://localhost:3128

In the current master the icon is correctly shown:
$ nativefier --name "Webex-Teams" --platform linux --arch x64 --electron-version 8.0.0 --tray --single-instance --counter --bounce --honest https://teams.webex.com --verbose
  inferring [                                                  ] 0%Unable to infer chrome version for user agent, using 61.0.3163.100
Cannot automatically retrieve the app icon: Error: connect ECONNREFUSED <IP_ADDRESS>:443
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1134:16) {
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '<IP_ADDRESS>',
  port: 443
}
Downloading tmp-63615-1-SHASUMS256.txt-8.0.0
[============================================>] 100.0% of 5.65 kB (5.65 kB/s)
Packaging app for platform linux x64 using electron v8.0.0

App built to /home/rleinardi/Webex-Teams-linux-x64

In the current master the icon is correctly shown

@leinardi not sure I understand you. What I see is that:

In both cases, getting the icon fails
But apparently, electron-packager's job used to work in Nativefier 7.7.1.

Put differently: when nativefying behind a proxy, you never had an icon, but used to be able to successfully build. Now you still don't have an icon, and app build fails. Correct?

Yep, I think that's correct: current stable can still download electron and build the wrapper, with the icon missing, ts just fails immediately because it is unable to download electron.

Yep, I think that's correct: current stable can still download electron and build the wrapper, with the icon missing, ts just fails immediately because it is unable to download electron.

@leinardi hm, interesting.
Could this just be "working-ish" in 7.7.1 stable because your Electron got cached as you first downloaded the demanded Electron on a proxy-less connection? Put differently, in the ts branch, does nativefier succeed if you first run the same command behind a proxy-less connection (which will cache Electron), THEN re-run it behind a proxy (which will use the cached Electron)?
Or are you sure things worked plain better on the proxy side in 7.7.1 stable? I'm asking these suspicions because I changed almost nothing around the call to electron-packager and would be hoping for the exact same behavior & bugs. I'm not sure where to look.
Thanks for the fast feedback, I don't have a proxy at hand here, your precisions will help fixing that.

Could this just be "working-ish" in 7.7.1 stable because your Electron got cached as you first downloaded the demanded Electron on a proxy-less connection
are you sure things worked plain better on the proxy side in 7.7.1 stable

I thought of the same thing and to be sure I tried with a brand new version of electron that I had never downloaded before.
Now, just to triple check, I downloaded another version 7.1.12, that was release the 10th of February.
I can see the download progress via command line:

And I can see the spike of usage in my network monitor:
I can confirm that the current release installed via npm install nativefier -g works fine behind prozxy.

I can confirm that the current release installed via npm install nativefier -g works fine behind prozxy.

@leinardi okay, thanks for double-checking. I'm a bit puzzled as I don't remember changing anything how electron-packager (which does the downloading) is called.
If you have time to spare and want to try helping, the call to electron-packager is at https://github.com/jiahaog/nativefier/blob/ts/src/build/buildMain.ts#L116 , and here are the dev docs.

@leinardi got it; electron-packager now uses https://github.com/electron/get#proxies , which say:

Downstream packages should utilize the initializeProxy function to add HTTP(S) proxy support. If the environment variable ELECTRON_GET_USE_PROXY is set, it is called automatically. A different proxy module is used, depending on the version of Node in use, and as such, there are slightly different ways to set the proxy environment variables. For Node 10 and above, global-agent is used. Otherwise, global-tunnel-ng is used. Refer to the appropriate linked module to determine how to configure proxy support.

I'd like your help, as I don't have a proxy for tests. Can you test on both node<10 and node>=10, and tell me me how you had to set up environment variables for each?

When running node>=10, see https://github.com/gajus/global-agent#faq
When running node<10, see https://github.com/np-maintain/global-tunnel#auto-config

Thanks 🙂.

Hey, these days I'm not able to test, sorry :'(

Hey, these days I'm not able to test, sorry :'(

@leinardi no problem. Will release with a note in a "Known Issues" section, someone else will jump on it. Thanks for the report anyway 🙂.


Added code to add_theme.R to use the nmfs color palette in plots

@Schiano-NOAA and @sbreitbart-NOAA The GHA workflows failed on push but not on the pull request. I suspect this might be due to the feature branch being behind the main branch. I ran a rebase test here, and all tests passed with no changes required to the actual code base. Would you like me to rebase the access_plot_theme branch and force push it?
I noticed that tests/testthat/test-add_theme.R is currently commented out. It would be helpful to update the tests and include some for the newly added code (e.g., usage of {nmfspalette}) before merging these changes into the main branch.


Hacky or... bad design for ExpressionFinder ?

The class ExpressionFinder inherits from Visitor in module loki.expression.expr_visitors.
The initialization method is doing something a bit weird, qualified in a comment as "pretty hacky" : setting a static method (retrieval_function) provided by a dummy argument. Moreover, this argument is in fact built on the fly in the initialization methods of the derived classes such as FindTypedSymbols, FindVariables, etc., then calling super.__init__ with this argument, which will be attached as a static method to the parent class !
One may consider that everything is fine as long as we proceed like this :
FindTypedSymbols().visit(item.ir)
FindVariables(unique=False).visit(item.ir)

But as soon as you want to "freeze" your finder (for example to delegate work to an other entity or reuse it several times), things are going wrong:
find_ts = FindTypedSymbols()
find_vars = FindVariables(unique=False)
find_ts.visit(item.ir)

The find_ts will in fact use the retrieval function defined by the initialization method of FindVariables.
At least, even if we want to keep this kind of design for the initialization of derived classes, the retrieval function should be attached to the instance and then called by the retrieve method. Do I miss something ?

Thanks for reporting this. I agree that they way the retrieval function is stored seems odd and certainly mandates an overhaul. However, I haven't been able to reproduce the behaviour you described, the following test works correctly for me:

@pytest.mark.parametrize('frontend', available_frontends())
def test_expression_finder_retrieval_function(frontend):
    """
    Verify that expression finder visitors work as intended and remain
    functional if re-used
    """
    fcode = """
module some_mod
    implicit none
contains
    function some_func() result(ret)
        integer, intent(out) :: ret
        ret = 1
    end function some_func

    subroutine other_routine
        integer :: var, tmp
        var = 5 + some_func()
    end subroutine other_routine
end module some_mod
    """.strip()

    source = Sourcefile.from_source(fcode, frontend=frontend)

    expected_ts = {'var', 'some_func'}
    expected_vars = ('var',)

    # Instantiate the first expression finder and make sure it works as expected
    find_ts = FindTypedSymbols()
    assert find_ts.visit(source['other_routine'].body) == expected_ts

    # Verify that it works also on a repeated invocation
    assert find_ts.visit(source['other_routine'].body) == expected_ts

    # Instantiate the second expression finder and make sure it works as expected
    find_vars = FindVariables(unique=False)
    assert find_vars.visit(source['other_routine'].body) == expected_vars

    # Make sure the first expression finder still works
    assert find_ts.visit(source['other_routine'].body) == expected_ts

Would you be able to provide a complete MFE?

Sorry, I realized too late that the previous case is ok because the retrieval function is attached to the actual class and note the parent class. Nevertheless, the trouble could occur if actual arguments to a same finder are changed from one call to another, such as in the example below:
@pytest.mark.parametrize('frontend', available_frontends())
def test_expression_finder_retrieval_function(frontend):
    """
    Verify that expression finder visitors work as intended and remain
    functional if re-used
    """
    fcode = """
module some_mod
    implicit none
    type some_type
        integer :: ifoo
        real :: zfoo
    end type some_type
contains
    function some_func(ptmp) result(ret)
        type(some_type), intent(in) :: ptmp
        integer, intent(out) :: ret
        ret = tmp%ifoo * 3
    end function some_func

    subroutine other_routine
        integer :: var
        type(some_type) :: tmp
        tmp%ifoo = 2
        var = 5 + some_func(tmp)
    end subroutine other_routine
end module some_mod
    """.strip()

    source = Sourcefile.from_source(fcode, frontend=frontend)

    expected_v1 = ('tmp', 'tmp%ifoo', 'var', 'tmp')
    expected_v2 = ('tmp%ifoo', 'var', 'tmp')

    # Instantiate the first expression finder and make sure it works as expected
    find_v1 = FindVariables(unique=False)
    assert find_v1.visit(source['other_routine'].body) == expected_v1

    # Instantiate the second expression finder and make sure it works as expected
    find_v2 = FindVariables(unique=False, recurse_to_parent=False)
    assert find_v2.visit(source['other_routine'].body) == expected_v2

    # Make sure the first expression finder still works
    assert find_v1.visit(source['other_routine'].body) == expected_v1

Thanks, you're right, I should have figured that out myself!
I can confirm that I can reproduce the behaviour now.


style: update project to pass checkstyle requirements

Hi Adrian,
Last of the cleanups i think, please take a look.
I had to do some sucky stuff in circleci to get it to build off the right java-crypto-conditions branch - i think we should aim to make a master & dev branch ASAP and break the gradle dependencies on project source - we should rather be referencing official / release candidate libraries on maven.

Nice work, Andrew!

Please squash and merge


[p-table] Remove built-in titles on p-table data cells.

Not sure that these titles add much. If anything, non-primitive values take a hit here

I think this was probably here because of truncation. Any concerns about that? I agree this probably isn't super useful

I think this was probably here because of truncation. Any concerns about that? I agree this probably isn't super useful

Hm did a quick audit across the app, I think most tables scroll by default (at the table width level). Probably added for the deployments list/table... where the names are truncated but I think it probably makes more sense to handle that there rather than here.
(I also noticed a couple of other oddities w/ title as i perused some other tables. things like the title shows the UUID id for what's otherwise an already human-readable value. possibly useful but imo looks unintentional)


add openssl

Status
Ready/In Progress/In Hold (Reason for hold)
Related Content Pull Request
Related PR: link to the PR at demisto/content
Related Issues
Related: link to the issue
Description
A few sentences describing the overall goals of the pull request's commits.

native has the client already, adding the label


cudaPackages.cuda-samples: move out of pkgs/test

Issue description

...pkgs/test/cuda/*/extension.nix are being used to extend the cudaPackages set.
This is not great, it violates implicit Nixpkgs boundary: pkgs/test should only contain files to test the entire package set, the package set should not depend on this.
https://github.com/NixOS/nixpkgs/pull/279684#issuecomment-1881875723

@NixOS/cuda-maintainers
Technical details
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.

Closed by #280386


[Android/Build] dependency to glib

clearly denote dependency to glib in android build.
Signed-off-by: Jaeyun<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #87. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://nnstreamer.mooo.com/.

:octocat: cibot: @jaeyun-jung, A builder checker could not be completed because one of the checkers is not completed. In order to find out a reason, please go to http://nnstreamer.mooo.com/nnstreamer-api/ci/repo-workers/pr-checker/87-202108131913180.1011049747467-6f692c3541dda328305041b7f024695d0fd37f7d/.

This cannot affect Ubuntu build. Let's ignore it and try to resolve Ubuntu build errors later.


RSS生成的atom.xml乱码问题

Expected behavior (预期行为)

Actual behavior (实际行为)

Steps to reproduce the behavior (重现步骤)
见我的博客订阅
NexT Informations
Add the  ✔  sign before an item which is affected by this behavior.
NexT Version:

Master
Latest Release ✔
Old version

NexT Scheme:

All schemes
Muse
Mist
Pisces ✔

Other Informations (Like Browser, System, Screenshots)
这是编码问题，我安装了feed插件。配置文件设定rss: /atom.xml 或者留空也都是这样的情况。

@shliujing dont understand u, write in English if not solved. If solved, close it please. Thank's!


Host hostname

I realize the title is confusing 😛 . Sorry if there's a better forum for questions. I didn't see GitHub discussions enabled on this repo.
Coming from docker desktop, the recommended pattern when wanting to refer to HTTP URLs on the macOS host was to use host.docker.internal. I'm wondering if there's something similar in the Lima world?
A concrete example is running a Postgres instance using Postgres.app and wanting to connect to it from a container running in Lima.

Coming from docker desktop, the recommended pattern when wanting to refer to HTTP URLs on the macOS host was to use host.docker.internal. I'm wondering if there's something similar in the Lima world?

We define host.lima.internal to point to the host from inside the VM.

I didn't see GitHub discussions enabled on this repo.

@AkihiroSuda Should we enable discussions, so we can move questions out of Issue, which should only have actionable items?

We define host.lima.internal to point to the host from inside the VM.

Wonderful. I'll give that a try. I had looked through the docs and didn't find this (sorry if I missed!) - so may be good to document it?
Cheers

I had looked through the docs

It is documented here:
https://github.com/lima-vm/lima/blob/5237bfe/docs/network.md#host-ip-19216852


Apply "Fix removing master from replset #186" to all versions.

This PR apply changes merged in https://github.com/sclorg/mongodb-container/pull/186 to all versions (PR was merged with changes only applied to 3.2 version).
Description of original PR:

This PR aims to fix 'stepping down server from PRIMARY role'.
When member is going to be removed from replset and this member is PRIMARY, it should check that this won't break replset - that replset is able to vote a new PRIMARY.
In current situation while removing PRIMARY it could happen that not all members of replset are up-to-date and replset user can lost some information.
Code which is now running after post deploy hook successfully initialize replset performs removing PRIMARY from replset. So removing this code from init-replset.sh and post-hook kills main scripts and this calls cleanup() (there the PRIMARY member is clearly removed).

Also this fixes https://bugzilla.redhat.com/show_bug.cgi?id=1260586

@hhorak @bparees Please take a look and merge.

[test]

Generally 2.4 version should already stay untouched, since it is no longer supported. But since it is already done this time and it fixes the mongodb24-related BZ, I'd be in favor merging this as it is. It looks good to me. LGTM after tests pass.


Unable To Host Games On Linux

Describe the bug
My games don't appear on the game list when hosting
To Reproduce
Host a game. Happens with any map, any mod.
Log or error message
This is my log file:
log.txt
** Screenshot **

Novaya also confirmed in chat that my game isn't visible but I do have the hosting ring in the user list
Edit:
Novaya also confirmed that my chat status does update to battle room when I launch the game. The map preview also suddenly appears once in a battle room.
Expected behavior
Hosted games appear in the games list
OS
Linux (Slackware 15)
Java OpenJDK Runtime Environment Zulu15.36+13-CA (build 15.0.5+3-MTS)
Wine wine-7.3 (Staging)
TAF build 1.4.3-taf-0.14.15

I have the same problem but friend was able to join and play via the client list to the left.

Hi, yes I managed to replicate the problem just once.  Does your game show up on the game board if you rehost?

I don't see anything relevant in the console logging but here it is anyway starting from when i click create game:
2022-05-11 11:26:53.726  INFO 2797647 --- [lication Thread] c.faforever.client.remote.AssetService   : Using cached image: /home/exuvo/.taforever/cache/maps/mini/[V] Annihilator Alley.png
2022-05-11 11:26:54.577  INFO 2797647 --- [lication Thread] c.f.client.game.CreateGameController     : [setContextGame] null
2022-05-11 11:27:02.497  INFO 2797647 --- [pool-3-thread-2] com.faforever.client.fa.MapTool          : [/mnt/ssd2/Games/Total Annihilation/total annihilation forever/natives/bin/maptool, --gamepath, /mnt/ssd2/Games/Total Annihilation/pfx/drive_c/Total Annihilation, --mapname, [V] Annihilator Alley$, --hash]
2022-05-11 11:27:02.537  INFO 2797647 --- [pool-3-thread-2] com.faforever.client.game.GameService    : [hostGame] title=test
2022-05-11 11:27:02.653  INFO 2797647 --- [      Thread-21] c.f.client.fa.relay.ice.IceAdapterImpl   : Starting ICE adapter with command: [/usr/lib/jvm/java-15-adoptopenjdk/bin/java, -jar, /mnt/ssd2/Games/Total Annihilation/total annihilation forever/natives/faf-ice-adapter.jar, --id, 991, --login, exuvo, --rpc-port, 5433, --gpgnet-port, 54559]
2022-05-11 11:27:03.267  INFO 2797647 --- [      Thread-21] c.f.client.fa.TotalAnnihilationService   : [startLaunchServer] starting on port 38547
2022-05-11 11:27:03.267  WARN 2797647 --- [        Timer-1] c.f.client.fa.TotalAnnihilationService   : launch server not alive ...
2022-05-11 11:27:03.269  INFO 2797647 --- [      Thread-21] c.f.client.fa.TotalAnnihilationService   : [wine, /mnt/ssd2/Games/Total Annihilation/total annihilation forever/natives/bin/talauncher.exe, --bindport, 38547, --logfile, /home/exuvo/.taforever/logs/talauncher_17563.log]
2022-05-11 11:27:03.271  INFO 2797647 --- [      Thread-21] c.f.client.fa.TotalAnnihilationService   : Issuing killall dplaysvr.exe to free up port 47624 ...
2022-05-11 11:27:03.276  INFO 2797647 --- [      Thread-21] c.f.client.fa.TotalAnnihilationService   : Issuing killall gpgnet4ta to free up port 47624 ...
2022-05-11 11:27:03.280  INFO 2797647 --- [      Thread-21] c.f.client.fa.TotalAnnihilationService   : [wine, /mnt/ssd2/Games/Total Annihilation/total annihilation forever/natives/bin/talauncher.exe, --registerdplay, --gamemod, taesc, --gamepath, /mnt/ssd2/Games/Total Annihilation/pfx/drive_c/Total Annihilation, --gameexe, TotalA ESC.exe, --logfile, /home/exuvo/.taforever/logs/registerdplay_17563.log]
2022-05-11 11:27:03.581  INFO 2797647 --- [      Thread-21] c.f.client.fa.TotalAnnihilationService   : [/mnt/ssd2/Games/Total Annihilation/total annihilation forever/natives/bin/gpgnet4ta, --lobbybindaddress, <IP_ADDRESS>, --consoleport, 36729, --gamemod, taesc, --gamepath, /mnt/ssd2/Games/Total Annihilation/pfx/drive_c/Total Annihilation, --players, 10, --gpgnet, <IP_ADDRESS>:54559, --logfile, /home/exuvo/.taforever/logs/game_17563.log, --launchserverport, 38547, --democompilerurl, lobby.taforever.com:15000/17563]
2022-05-11 11:27:04.770  INFO 2797647 --- [lication Thread] c.faforever.client.remote.AssetService   : Using cached image: /home/exuvo/.taforever/cache/maps/mini/[V] Annihilator Alley.png

Actually i do see something in that log. /home/exuvo/.taforever/logs/registerdplay_17563.log this file never shows up.

In tekk's case, game doesn't show up on the board because server doesn't have all the information about the selected map.
In client.log you can see the the "game_info" message indicates a "map_file_path" similar to "/Moon Quartet/".
2022-05-10 21:48:07.894 DEBUG 1843 --- [Thread-12] c.f.c.remote.AbstractServerAccessor      : Message from server: {"command":"game_info","visibility":"public","password_protected":false,"uid":17554,"title":"Seeing if TAF Works","state":"staging","replay_delay_seconds":300,"game_type":"custom","featured_mod":"taesc","sim_mods":{},"map_name":"Moon Quartet","map_file_path":"/Moon Quartet/","host":"tekk","num_players":1,"max_players":10,"launched_at":null,"rating_type":"global","rating_min":null,"rating_max":null,"enforce_rating_range":false,"teams":{"1":["tekk"]}}

There is supposed to be a new game_info update following soon after that where the map_file_path has been augmented with the hpi filename and the CRC, eg "map_file_path":"totala2.hpi/Moon Quartet/134a54da", but in tekk's case this message never arrives.  The game won't show up on the game board without this extra information.
This information is supposed to be provided by the maptool.  In tekk's log, the maptool is running, but its not returning any information about Moon Quartet
From game_17554.log (notice the "getMapDetails" result is just an empty string "")
2022.05.11 01:48:07 [0x7f8e5220dc00:Info] [getMapDetails] exe: "maptool" , args: ("--gamepath", "/home/tekk/Games/gog/taesc/drive_c/GOG Games/Total Annihilation", "--mapname", "Moon Quartet$", "--hash")
2022.05.11 01:48:07 [0x7f8e5220dc00:Info] [getMapDetails] ""

I wonder if there are any additional clues to be seen if the maptool is executed manually?
natives/bin/maptool --gamepath "/home/tekk/Games/gog/taesc/drive_c/GOG Games/Total Annihilation" --mapname "Moon Quartet$" --hash

Also I wonder if its possible that totala2.hpi is missing from the installation?
Or maybe there's a symlink in the gamepath and maptool isn't working properly with the symlink?
Or maybe there's a corrupted a .ufo or .hpi or .ccx file interfering with maptool's ability to work?

Okay i ran maptool with the map i have been using "[V] Annihilator Alley" and i get the return string after the program has exited which is very wierd:
[exuvo@exuvo-desktop: /mnt/ssd2/Games/Total Annihilation] 0
$ WINEPREFIX="/mnt/ssd2/Games/Total Annihilation/pfx" wine total\ annihilation\ forever/natives/bin/maptool --gamepath "/mnt/ssd2/Games/Total Annihilation/pfx/drive_c/Total Annihilation" --mapname "[V] Annihilator Alley$" --hash
WARNING: radv is not a conformant Vulkan implementation, testing use only.
WARNING: radv is not a conformant Vulkan implementation, testing use only.
[exuvo@exuvo-desktop: /mnt/ssd2/Games/Total Annihilation] 0
$ [V] Annihilator AlleyV maps.ufof0940a0c5 x 15. W:+0-6. Take a run down the Annihilator Alley. By Lister3128. Fixed by TAG_Venom2, 40-100020112
<marker is here now>

Could maybe be fixed if you disable the buffering for stdout in the program?
setvbuf(stdout, NULL, _IONBF, 0); https://pubs.opengroup.org/onlinepubs/9699919799/functions/setvbuf.html

I can't figure out how to increase the logging level, how do i do that?

hmmm maptool is a native linux app, shouldn't be necessary to run it through wine

oh right my bad

Is "[V] Annihilator Alley^_V maps.ufo^_f0940a0c^5 x 15. W:+0-6. Take a run down the Annihilator Alley. By Lister3128. Fixed by TAG_Venom^^_2, 4^_0-1000^_20^_112" a resonable output?

yeah that looks spot on.  Do you see a similar response being advertised in game*.log when you try to host?  Or just an empty "" like tekk?

How do i turn on the debug logging to see the game_info lines?

First:
Message from server: {"command":"game_info","visibility":"public","password_protected":false,"uid":17571,"title":"test","state":"staging","replay_delay_seconds":300,"game_type":"custom","featured_mod":"taesc","sim_mods":{},"map_name":"[V] Annihilator Alley","map_file_path":"/[V] Annihilator Alley/","host":"exuvo","num_players":0,"max_players":10,"launched_at":null,"rating_type":"global","rating_min":null,"rating_max":null,"enforce_rating_range":false,"teams":{}}
Second a second later:
Message from server: {"command":"game_info","visibility":"public","password_protected":false,"uid":17571,"title":"test","state":"staging","replay_delay_seconds":300,"game_type":"custom","featured_mod":"taesc","sim_mods":{},"map_name":"[V] Annihilator Alley","map_file_path":"/[V] Annihilator Alley/","host":"exuvo","num_players":1,"max_players":10,"launched_at":null,"rating_type":"global","rating_min":null,"rating_max":null,"enforce_rating_range":false,"teams":{"1":["exuvo"]}}

yeah looks like same problem as tekk

Could it be something simple like you looking for \ but on linux we get / ?

I got the client code building, any suggestions where i should start looking?

I believe its going wrong where gpgnet4ta runs the maptool.  I can point you to the exact bit of code if you accept invite to join taforever organisation

I have accepted now.

After some testing with additional logging it seems the tool that runs the maptool (gpgnet4ta main) is only run when i press leave on the lobby window or start up in-game lobby and then exit out. It is clearly getting stuck somewhere.

yay i got it working! gpgnet4ta does not seem to run with workingdirectory set on linux so it needs absolute path to maptool.

Just confirmed: copying maptool to my ~/bin/ (which is in my path) and map hosting works

That'd make sense. You can probably also just add . to your path (or the absolute path to the natives)
On May 11, 2022 11:11:06 AM EDT, exuvo @.***> wrote:

No working directory is correct but linux needs ./maptool
--
Reply to this email directly or view it on GitHub:
https://github.com/ta-forever/downlords-taf-client/issues/7#issuecomment-1123909169
You are receiving this because you authored the thread.
Message ID: @.***>