Add homekit sha512 layer to adler32 hash

Breaking Change:
This change modifies how AIDs are generated within the homekit component.  I do not know if these IDs are adhoc, or require consistency across HA boot cycles.  If these are adhoc, this should be a silent change.  If consistency is required, however, users will probably need to toss their cached homekit state and rebind their iOS devices.
Description:
This is a two line change to introduce more entropy to the generation of AIDs within homekit, which, given the nature of entity IDs, are prone to hash collisions.
Related issue (if applicable): fixes #27954
Checklist:

[x] The code change is tested and works locally.
[ ] Local tests pass with tox. Your PR cannot be merged unless tests pass
[x] There is no commented out code in this PR.
[ ] I have followed the development checklist

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[ ] The manifest file has all fields filled out correctly. Update and include derived files by running python3 -m script.hassfest.
[ ] New or updated dependencies have been added to requirements_all.txt by running python3 -m script.gen_requirements_all.
[ ] Untested files have been added to .coveragerc.

If the code does not interact with devices:

[ ] Tests have been added to verify that the new code works.

Hi @vishnubob,
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!

Good with a fix for this, added a comment about the hashing.

Good with a fix for this, added a comment about the hashing.

👍

Good with a fix for this, added a comment about the hashing.

Hi, sorry, what does that mean exactly?  You are accepting this pull request, or you are managing the issue with a separate patch?

I have the issue of hash collisions myself and got a notification from another issue you wrote in. So I just wanted to give some feedback on the solution 😊 I don't make any decisions, just doing an external review.

I have the issue of hash collisions myself and got a notification from another issue you wrote in. So I just wanted to give some feedback on the solution 😊 I don't make any decisions, just doing an external review.

Got it, thanks for the feedback!

@Jc2k can you review?

@MartinHjelmare sure.
First of all, to confirm, this is indeed a breaking change. Think of it like changing the unique_id of something in in HomeAssistant. According to the HomeKit spec the AID must remain static within the lifetime of a pairing, so best case the iOS Home.app will think some entities were removed and some new ones added. This will mean they loose any room assigments they have made and that they lose any scenes they have designed in iOS rather than HASS. It's very unlikely i think, but i' not sure that happens if an AID were to "change type" and suddenly instead of a light it now refers to a thermostat.
I think if we are OK with a breaking change like that (to be clear, as a user i wouldn't like it to happen to me but this is not my call to make) then we need to flesh out what the migration process actually is. What does "users will probably need to toss their cached homekit state and rebind their iOS devices." mean? Will the system lose their state but otherwise keep working? Will they have to delete the state file? Will they have to repair?
My instinct is that this change would actually help a lot. Entity ids are short and have a limited set of characters that are used. The sha will turn this into 64 bytes in the range 0-254. It should be much better data for Adler-32 to run on. But even if sha512 helps im not sure that adler32 is ever going to be truly suitable. It's just not clear to what extent Adler-32 will "undo" the advantage we just gave it as it collapses down to an integer. For example. for short messages adler32 has poor coverage of the number space - it sounds like you need an input of greater than 128 bytes to use more than half the available hash space. At the end of the day its a checksum function, and one that trades accuracy for speed at that.
Even if the hashes were OK, I'm not a fan of relying on hashes to turn the entity ID into an integer. At the very least if we were doing a breaking change of this size i wonder if it would be a good time to use the entities unique_id. It would allow users to rename entities without breaking their Home.app setups.
My preferred approach would ultimately be one that avoided relying on hashes. Maybe add a new Storage that maps unique_id to aid. Don't rely on hashes, just get the next free number from the Storage and assign that. This approach has the advantage that it can be made to be not a breaking change. When hass starts and detects it is paired to a iOS device but doesn't have this new storage at all it generates one using the old adler approach.  But the rest of the time it can just increment until there isn't a collision or generate random numbers until there isn't a collision.

@Jc2k Thanks for the review.  That sounds like the right fix, and I look forward to when it gets rolled out.  I would encourage some kind of fix to get in there sooner than later because I imagine more people get bitten by this than are truly reporting.  I've been running the sha512 patch now for a week with no issue, and it's the first time I've actually been able to use homekit component.  Thanks!

Unfortunately the homekit component doesn't have a maintainer right now so we might be waiting a while.
I agree that it would be good to get this sorted, but I think on balance I would still advise the HA reviewers to wait for the "proper" fix. Adler-32 is a speed over corrrecness checksum. It's designer has repeatedly said its a checksum and collision resistance is not in its wheelhouse. Using a sha first might help, but it's not currently clear just how effective this construction actually is. It might fix it for some users, break it for some other users, meanwhile inconvenience every user that currently has it working by deleting their room and scene configuration.

I would appreciate the update as well. Got several devices causing "double" entries.

Using a sha first might help, but it's not currently clear just how effective this construction actually is. It might fix it for some users, break it for some other users, meanwhile inconvenience every user that currently has it working by deleting their room and scene configuration.

@Jc2k I appreciate your skepticism, but consider the results from the example below:
from collections import defaultdict
import hashlib
import zlib

adler_book = defaultdict(int)
sha_book = defaultdict(int)

for cnt in range(1000):
    token = f"sonoff-{cnt:04d}"
    adler_hash = zlib.adler32(token.encode("utf-8"))
    adler_book[adler_hash] += 1
    sha_hash = zlib.adler32(hashlib.sha512(token.encode("utf-8")).digest())
    sha_book[sha_hash] += 1

# returns 912
print(sum([cnt for cnt in adler_book.values() if cnt != 1]))

# returns 0
print(sum([cnt for cnt in sha_book.values() if cnt != 1]))

Sure adler32 on its own is bad as a collision resistant hash. We get that. It's author has repeatedly said that. It is not a surprise. As i said, my gut feeling was this would make it loads better. And it's great that you have provided some data to back it up now (thats so very much better than 'it wfm', so really thanks a lot!) I have run similiar code on an english word list and adler on its own (with no platform prefixes) is about 218x worse than sha512 + adler. If there was no side effect to implementing this change it would be an absolute no brainer.
But this approach isn't conflict free. There are still hundreds of conflicts. Obviously there are. There are more words than numbers. If i repeat with 5 of the entity platform prefixes the number collisions for this approach go from 3 digits to 5 digits.  And that means I still couldn't look a Home Assistant user in the eye and tell them the upgrade to the release containing this PR won't leave them in the same position as you are currently in.
And i would still have to warn them all that any setup they have done on the iOS side would need redoing. Scenes, Rooms, Automations (quite common to use a geo automation to trigger an event in HASS via HomeKit). Every single one of them, regardless of whether they were effected by the problem or not.
To be clear i'm in no way say your approach isn't way better than what we have already, it absolutely is, i'm just not saying its not a "fix". The current code is a clever hack to map a variable length text field onto a single 32bit number. This is a cleverer better version of that hack. But changing it now is a breaking change and there are other ways to approach this that don't cause people to loose any rooms they have set up in the Home app or loose any scenes etc they have set up on the iOS side. There are ways to do this that provably have no collisions and will fix it permanently.

I had no idea there was any documentation on this weakness.  As a user, I simply had to work backwards from the exception, which took a few hours to track down.  All told, I probably burned four hours on the topic including the tracing, write-up and pull-request.  However, I am at my limit for what I can contribute on this matter.  Since I run home assistant with docker, I just dropped this script into my config directory and use it to boot the standard HA image:

pushd /usr/src/homeassistant
patch -p1 << EOF
diff --git a/homeassistant/components/homekit/__init__.py b/homeassistant/components/homekit/__init__.py
index d8aafb8e2..b28441928 100644
--- a/homeassistant/components/homekit/__init__.py
+++ b/homeassistant/components/homekit/__init__.py
@@ -1,6 +1,7 @@
 """Support for Apple HomeKit."""
 import ipaddress
 import logging
+import hashlib
 from zlib import adler32

 import voluptuous as vol
@@ -255,7 +256,7 @@ def get_accessory(hass, driver, state, aid, config):

 def generate_aid(entity_id):
     """Generate accessory aid with zlib adler32."""
-    aid = adler32(entity_id.encode("utf-8"))
+    aid = adler32(hashlib.sha512(entity_id.encode("utf-8")).digest())
     if aid in (0, 1):
         return None
     return aid
EOF
popd

exec /usr/local/bin/python3 /usr/src/homeassistant/homeassistant/__main__.py --config /config

I'm sharing here in case it's useful to anyone struggling with this issue.  Even if this wasn't a successful pull, thanks for your time and effort volunteering for such a great project.


Custom Cluster: etcd nodes not deleting properly

Rancher versions:
v2.0.0-rc3
Steps:
Create a custom cluster, at least one extra node with etcd role.
Delete etcd node.
Results:
etcd node is still associated to cluster.

More details. Added 3 nodes. One etcd, one controller, one worker. Waited until cluster was active. Added second etcd node.  After second etcd node was active, deleted first etcd node from the cluster.

@adingilloRancher I will try to reproduce with the latest master

@adingilloRancher followed the steps:

create custom cluster with 3 nodes 1 etcd 1 control 1 worker
add another etcd
remove the original etcd

I wasn't able to reproduce, can you post the rancher server logs from this incident

@adingilloRancher I checked the logs of rancher server, and i can see that the etcd node removed successfully from the etcd cluster:
2018/04/28 00:42:06 [INFO] cluster [c-nbk7k] provisioning: [remove/etcd] Removing member [etcd-austinEtcd] from etcd cluster
2018/04/28 00:42:06 [INFO] cluster [c-nbk7k] provisioning: [remove/etcd] Successfully removed member [etcd-austinEtcd] from etcd cluster

However rke failed to cordon and delete the node from k8s:
2018/04/28 00:42:06 [INFO] cluster [c-nbk7k] provisioning: [hosts] Cordoning host [<IP_ADDRESS>]
2018/04/28 00:42:13 [INFO] cluster [c-nbk7k] provisioning: [hosts] Deleting host [<IP_ADDRESS>] from the cluster
2018/04/28 00:42:13 [ERROR] cluster [c-nbk7k] provisioning: Failed to delete etcd node <IP_ADDRESS> from cluster

@adingilloRancher I added a PR to display more logs about the delete k8s node problems, however i wasn't able to reproduce after several retries.

Master 5/11/18.
Verified etcd node is successfully removed.


fix: Update keys calculation for virtual dropdown lists

Description
Add this property according to react-virtual docs

keyExtractor: Function(index) => String | Integer
This function should be passed whenever dynamic measurement rendering is enabled and the size or order of items in the list changes.

We have variable size of the items, so it is our case.
Related links, issue #, if available: AWSUI-20777
How has this been tested?

Pushed to my dev pipeline for cross-browser tests
Added unit tests on virtual scroll mode in general, because we missed unit test coverage on this feature completely

Review checklist
The following items are to be evaluated by the author(s) and the reviewer(s).
Correctness

Changes include appropriate documentation updates.
Changes are backward-compatible if not indicated, see CONTRIBUTING.md.
Changes do not include unsupported browser features, see CONTRIBUTING.md.
Changes were manually tested for accessibility, see accessibility guidelines.

Security

If the code handles URLs: all URLs are validated through the checkSafeUrl function.

Testing

Changes are covered with new/existing unit tests?
Changes are covered with new/existing integration tests?

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Cancelling the change, because keyExtractor returns undefined for all keys on the initial render, which defeats the reason for the change.
This happens because using useStableEventHandler, which is required because react-virtual heavily relies in memoization and the code fails with "Maximum Update Depth Exceeded" error if passing an inline lambda instead


question about initial constraints

Thank you for sharing the code. I have a doubt about constraints on initial variable in problem P*(x).  In equation (21) of reference [1] (p.222), the initial constraints are expressed as "x belongs to x0+Z ", where x0 is the decision variable of optimal control problem P*(x), and x is the known current state. While in the file "TubeModelPredictiveControl.m", line 41-42, the constraints are described as "Xinit = x_init + obj.sys.Z", where "x_init" is the known current state x,  and "Xinit" is the constraint boundary added to the problem with the form Ax<=b to restrict initial decision variable. I think that the code in line 41 implies "x0 belongs to x+Z", which is not consistent with  the original constraint "x belongs to x0+Z ". What's your opinion?

@zhang123huang Thank you for your pointing out! You are right. I made mistake. I'll fix it later, or it would be also really nice if you make a PR.


Threads hang on put in closed/closing/opening

I have 3 threads stuck with the same stack trace.
Version is 0.2.2
I launched process inserting data into 1 table over 1 connection with 6 threads.
Right after that I truncated table with hbase shell.
I saw in log complains that table is not found.
exception #1548 from bigtable.googleapis.com for \x00\x04\x1A\x8F\x00\x00\x01H\x06\xD0}\x80A\x95
io.grpc.StatusRuntimeException: NOT_FOUND: Failed to read table: table1
        at io.grpc.Status.asRuntimeException(Status.java:430)
        at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:266)
        at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$3.run(ClientCallImpl.java:320)
        at io.grpc.internal.SerializingExecutor$TaskRunner.run(SerializingExecutor.java:154)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
exception #1549 from bigtable.googleapis.com for \x00\x04\x1A\x8F\x00\x00\x01H\x06\xD0}\x80EU
io.grpc.StatusRuntimeException: UNKNOWN
        at io.grpc.Status.asRuntimeException(Status.java:430)
        at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:266)
        at io.grpc.ClientInterceptors$CheckedForwardingClientCall.start(ClientInterceptors.java:172)
        at io.grpc.stub.ClientCalls.startCall(ClientCalls.java:193)
        at io.grpc.stub.ClientCalls.asyncUnaryRequestCall(ClientCalls.java:173)
        at io.grpc.stub.ClientCalls.asyncUnaryRequestCall(ClientCalls.java:163)
        at io.grpc.stub.ClientCalls.asyncUnaryCall(ClientCalls.java:68)
        at com.google.cloud.bigtable.grpc.io.ClientCallService$1.listenableAsyncCall(ClientCallService.java:94)
        at com.google.cloud.bigtable.grpc.BigtableDataGrpcClient.mutateRowAsync(BigtableDataGrpcClient.java:150)
        at com.google.cloud.bigtable.grpc.async.AsyncExecutor$1.call(AsyncExecutor.java:58)
        at com.google.cloud.bigtable.grpc.async.AsyncExecutor$1.call(AsyncExecutor.java:55)
--
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: Channel is closed
        at com.google.cloud.bigtable.grpc.io.ReconnectingChannel$DelayingCall.start(ReconnectingChannel.java:88)
        at com.google.cloud.bigtable.grpc.io.ChannelPool$1.checkedStart(ChannelPool.java:97)
        at io.grpc.ClientInterceptors$CheckedForwardingClientCall.start(ClientInterceptors.java:164)
        ... 42 more

After one thread got RetriesExhaustedWithDetailsException it reopened the connection.
org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException: Failed 27 actions: StatusRuntimeException: 27 times,
        at com.google.cloud.bigtable.hbase.BatchExecutor.batch(BatchExecutor.java:294)
        at com.google.cloud.bigtable.hbase.BatchExecutor.batch(BatchExecutor.java:318)
        at com.google.cloud.bigtable.hbase.BigtableTable.put(BigtableTable.java:280)

Rest threads access to closed/closing/opening connection. Maybe this was not good idea to do so,
but I think that threads shouldn't hang forever.
Stacktrace of hanging threads:
"pool-12-thread-5" prio=10 tid=0x00002aaab85c6800 nid=0x325c waiting on condition [0x0000000042eb7000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x000000079a5b03b8> (a com.google.bigtable.repackaged.com.google.common.util.concurrent.AbstractFuture$Sync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:994)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303)
        at com.google.bigtable.repackaged.com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:285)
        at com.google.bigtable.repackaged.com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116)
        at com.google.cloud.bigtable.hbase.BatchExecutor.batch(BatchExecutor.java:280)
        at com.google.cloud.bigtable.hbase.BatchExecutor.batch(BatchExecutor.java:318)
        at com.google.cloud.bigtable.hbase.BigtableTable.put(BigtableTable.java:280)

Unfortunately, truncating the table deletes and recreates the table, which would explain the behavior.  We don't currently have a safe way to clean a table.

The "java.lang.IllegalStateException: Channel is closed" indicates that you likely called connection.close() somewhere and then did further operations.  We don't support that.

You're right about the fact that we shouldn't be hanging in this situation.  Is there any way you can provide a test case to reproduce this?  It would help a lot to have that so we can make sure we can fix this case.

The algorithm is simple:
put into non-existing table
catch exception
close connection
use the closed connection put again

Hm. We should just throw an illegal state exception.  I'll add that.  I'll also add a test.

I merged the last week.  I'll close this issue.  If this is still a problem, please let me know.


Like to customize gabriel...

I think Gabriel is a really useful tool and I like to customize it.
Only thing missing are skills in setting up an add on.
Could you give some good starting points to learn how to put the code available from the repository in a working google docs add on?

I think I allready know it now :D.
Starting point should be the google docs scripteditor!
thx anyway

Ok! Let me know if you need anything :)


[kubernetes] Add docs for k8sclusterreceiver

Adds documentation for the k8sclusterreceiver component.
Related to https://github.com/open-telemetry/opentelemetry.io/issues/3005
For the sake of working these in parallel im going to start opening multiple and always adding the new ones as low in the file as I can.  If there is a better way to organize I'll rearrange when they are all in.

If there is a better way to organize I'll rearrange when they are all in.

I'm starting to wonder if maybe these make sense as separate files altogether. I'm not entirely convinced yet, but that might be something we do. But I think we can tackle that kind of IA work separately.

I thought about separate files, but considering we'll have some other collector files for k8s specific collector stuff I opted to compress them into one for now.
I think once all the information is written they'll be ample opportunity for organization.

I think once all the information is written they'll be ample opportunity for organization.

Yep, agreed. First order of business is to get it all in, then we'll figure out if there's a better way to organize it.


about reward model LOAD_PATH=path-to-sft-ckpt

May I ask, to which level of the directory does the load path refer? Is it up to the hh_sft level or the iter00001000 level mentioned in the previous line?

the hh_sft level.

thanks for your reply!


detectLableResults is unbound

Need to declare an empty dictionary in the function to avoid linting errors.

Thank you for calling this out! I have remediated; please go ahead and pull changes.

Unbound dict remediated.


quiche: retain filter chain via ProofSource::Details

Signed-off-by: Dan Zhang<EMAIL_ADDRESS>Implement quic::ProofSource::Details to retain filter chain and pass it around during CHLO processing.  Replace the current way of filter chain retrieval upon receiving first packet on a new connection with this new approach.
Use the filter chain to initialize L4 filters when encryption level become forward secure.
Risk Level: low, not in use
Testing: re-use exiting proof source test. Simplify active_quic_listener_test.cc and envoy_quic_dispatcher_test.cc because of the behavior change.
Part of: #2557

/assign @wu-bin

Will let @wu-bin do first pass
@wrowe for windows failure - I'm seeing a bunch of those today.  @danzh2010 don't worry about those as they're not merge blocking yet

Ping @alyssawilk

Fixed GCC failure. PTAL!


No module named 'cdqa.reader.reader_sklearn'

When trying to use XLNet model in place of BERT I face the following error.
Could someone please help me with this?
cdqa_pipeline = QAPipeline(reader='./models/xlnet_cased_vCPU.joblib', max_df=1.0)

Hi @SuyashSrivastavaDel
You are facing this error because the XLNet implementation for cdQA is not ready yet. It is being developped in the sync-huggingface branch. You can follow our progress on this PR.
You can still use cdQA with BERT in the meantime.

Hey thanks for replying @fmikaelian. Could you help me answer a few of my other questions..
1.How many of Q&A pair per paragraph(custom dataset) would I require to train on top of pre-trained bert models?
2.Would the hyperparameters change in retraining the mentioned model?
3. Also, say If I want to train hotpotQA dataset, would you recommend training the model from scratch or train on given pre-trained BERT model?

Hi @SuyashSrivastavaDel ,
I will give my answers based on my knowledge and on what I think. @fmikaelian, you can correct me or add something if you think you should.

We don't have a closed number for this, as we trained the model only on SQUAD 1.1 in our experiments. SQUAD 1.1 has 100k QA pairs and we were able to train the model on it, so I would say that you will need at least something around 1k - 10k in total.
Regarding the quantity per paragraph, I would say 4+ questions if the paragraph is long and 2 or 3 if the paragraph is short.

It depends on the hyperparameters, you can fine-tune some training hyperparameters as learning rate, the number of epochs and batch size or some conditions on data such as max sentence length for the paragraph, for the question and for the answer. The idea is the overall structure of the model won't change, for example you cannot tune the number of layers.

I would recommend using the pre-trained model

Hey @andrelmfarias thanks for replying. Could you help me a little further with this..

How big of a document corpus can the TF-IDF retriever handle? A rough estimate would do.
Is there a way to get top 5 or say top 10 closest answers along with the predicted answer?
If not, what do you suggest I do to get them?

We did not try to test the limits of the tf-idf Retriever, but I suppose it can handle very large corpus. We are using the tf-idf vectorizer from sklearn, and from my experience, it can handle large corpus. If ever you try to push its limits can you inform us about the results?

Currently, it's not possible to do it on cdqa directly... You would have to modify the function write_predictions:
https://github.com/cdqa-suite/cdQA/blob/cff2d4404953d58880a2b5a3fcca52941a3e53cb/cdqa/reader/bertqa_sklearn.py#L454

by returning final_predictions_sorted:
https://github.com/cdqa-suite/cdQA/blob/cff2d4404953d58880a2b5a3fcca52941a3e53cb/cdqa/reader/bertqa_sklearn.py#L639
You also would have to modify the method .predict() of BertQA:
https://github.com/cdqa-suite/cdQA/blob/cff2d4404953d58880a2b5a3fcca52941a3e53cb/cdqa/reader/bertqa_sklearn.py#L1242
If ever you are interested in implement it as an option when using BertQA for predictions, feel free to do a PR  😃

@andrelmfarias  Thanks for replying, I am working on it.

Hi @SuyashSrivastavaDel and @andrelmfarias - any update on the multi-result feature?
Thank you.

Hey @JimAva , my fork of the repo has a branch named feature/n_best_predictions.
In that, the final cdqa_pipeline.predict(X=question) function returns the final prediction with an ordered dictionary.
In that dictionary you will find the top n prediction in the format as:
prediction, n_best_predictions = cdqa_pipeline.predict(X=question)
where  n_best_predictions={answer1:[title1, paragraph1],answer2:[title2, paragraph2]...........}
ranked from most relevant answer to the least.
n being equal to n_best_size which is passed as a parameter.
 :):)
Please check and let me know of the corrections if needed.


Conda recipe

It would be great to have RaGOO on Conda/Bioconda. Makes it easier to use it in SnakeMake and allows for analysis versioning. Thx!

It's definitely time for this. I will keep you posted on progress.
Thanks

Any updates?

Hi there,
This will be implemented in v2, which will hopefully be released in the next few months. Sorry about the delay!


Firefox plugin won't stay open on Linux

Steps to reproduce

Install the XPI
Click on the xBrowserSync button

Expected behaviour
It should stay open long enough for me to configure it.
Actual behaviour
It closes immediately.
Client app information
App Platform: Firefox
App Platform Version: 61.0.1
Other info
OS: Linux pop-os 4.15.0-29-generic #31-Ubuntu SMP Tue Jul 17 15:39:52 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Logs:
XML Parsing Error: not well-formed
Location: jar:file:///home/scstarkey/.mozilla/firefox/dd598hqc.default/extensions/%7Bd43bdd54-828d-4eb7-9ad3-6db1e852a5ce%7D.xpi!/views/login.html
Line Number 3, Column 106: login.html:3:106
XML Parsing Error: junk after document element
Location: jar:file:///home/scstarkey/.mozilla/firefox/dd598hqc.default/extensions/%7Bd43bdd54-828d-4eb7-9ad3-6db1e852a5ce%7D.xpi!/views/search.html
Line Number 30, Column 1: search.html:30:1
XML Parsing Error: not well-formed
Location: jar:file:///home/scstarkey/.mozilla/firefox/dd598hqc.default/extensions/%7Bd43bdd54-828d-4eb7-9ad3-6db1e852a5ce%7D.xpi!/views/bookmark.html
Line Number 1, Column 58: bookmark.html:1:58
XML Parsing Error: junk after document element
Location: jar:file:///home/scstarkey/.mozilla/firefox/dd598hqc.default/extensions/%7Bd43bdd54-828d-4eb7-9ad3-6db1e852a5ce%7D.xpi!/views/settings.html
Line Number 9, Column 1:

Thanks @coreagile, I'll fire up my ubuntu laptop tonight and see it I get the same result.

Ok I've installed the beta on Ubuntu 16.04.5 LTS, running Firefox 61.0.1 and everything works fine from my testing, I don't experience the issue you're seeing where the xBrowserSync window closes immediately.
Can I just check that you have installed the latest beta from the release page?


[REVIEW] xtest

Project link
https://github.com/joshiayush/xtest

Reviewed on video for my YouTube channel
some notes

good read me
GH Actions are breaking
hide packages if not used
use releases
hide wiki


Mistakenly tried to use 1.19.3 version on 1.20 server

It broke cyrillic symbols

Didn't fix even after removing the mod

Wrong mod page?


New issue with v8.2 of PHP

In PHP v8.2, line 359 :  if (preg_match("/^([a-z]\w*)\($/", $stack->last(3)))      now fails if the stack contains fewer than 3 values

Thanks for the report will check it. Do you have an example expression that fails?

Sure, an expression as simple as 2+4 will fail, as there's nothing in the
$stack variable.  This worked in v8.0 but fails in v8.2
Here's the error I received:
An error occurred in script '<...>/Expression.php' on line 359:
preg_match(): Passing null to parameter #2 ($subject) of type string is
deprecated
On Sat, Dec 30, 2023 at 3:54 PM Jakub T. Jankiewicz <
@.***> wrote:

Thanks for the report will check it. Do you have an example expression
that fails?
—
Reply to this email directly, view it on GitHub
https://github.com/jcubic/expression.php/issues/5#issuecomment-1872628346,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BFAUBYRYCU4QAZQ52Z2725TYMCSSFAVCNFSM6AAAAABBH2MRCKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZSGYZDQMZUGY
.
You are receiving this because you authored the thread.Message ID:
@.***>

Great thanks.

Are you sure it's PHP 8.2? I have 8.2.14 and it works fine. GitHub action run on PHP 8.1 updated it to 8.2.
But I've added:
error_reporting(E_ALL);

and got those but they were deprecation warnings and fixed all of them. Also added this to unit tests.

Yes, 8.2.0.
Thanks,
On Sat, Dec 30, 2023 at 5:23 PM Jakub T. Jankiewicz <
@.***> wrote:

Are you sure it's PHP 8.2? I have 8.2.14 and it works fine. GitHub action
run on PHP 8.1 updated it to 8.2.
But I've added:
error_reporting(E_ALL);
and got those but they were deprecation warnings and fixed all of them.
Also added this to unit tests.
—
Reply to this email directly, view it on GitHub
https://github.com/jcubic/expression.php/issues/5#issuecomment-1872642258,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BFAUBYQFE2JDVX3W2DTQLK3YMC5BFAVCNFSM6AAAAABBH2MRCKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZSGY2DEMRVHA
.
You are receiving this because you authored the thread.Message ID:
@.***>


feat(edge/jobs): migrate create view to react [EE-2221]

closes  EE-2221

tested with https://github.com/portainer/test-automation/pull/648


Hey, new to unbox

I'm just trying to get something together here.
I have
Agent.swift
Agent+CoreDataProperties automatically managed by xcode

Agent.swift just looks like this:
class Agent: NSManagedObject {
//    required init(unboxer: Unboxer) {
//
//    }

Agent.CoreDataProperties.swift looks like this.
extension Agent {
    @NSManaged var globalId: String?
    @NSManaged var name: String?
    @NSManaged var percentageDiscount: NSNumber?
    @NSManaged var balance: NSNumber?
    @NSManaged var note: String?
}

I'm trying to get the unboxer initialiser working but I'm not sure how to go about doing that since it wants me to call a desginated core data initialiser?
I want to parse some json and get rolling.
Could you perhaps explain how to use your package with my simple common example please?
Thank yo

@JohnSundell just a quick ping. Hope you're having a good weekend.

Hey @pavankataria, sorry for the late reply.
When using Unbox together with Core Data, it usually is easier to use the Custom Unboxing API introduced in Unbox 1.3. Basically it enables you to get more fine-grained control over the Unboxing process (by not using a required init), so that you can perform both JSON decoding any Core Data operations in one go.
The reasonining behind the Custom Unboxing API and how to use it with Core Data was discussed here: https://github.com/JohnSundell/Unbox/issues/18
Please check the README for more information about the Custom Unboxing API.

Hey, so I have read that read me, I just didn't know how that would fit in with my current two files that I have especially with the load dependency stuff.

No worries :) Did my reply clear things up, or do you need any further assistance?

is it possible for you to show how this would tie in together with my two files?

Sure, here is some example code:
// Load your data
let data: NSData = ...

let agent: Agent = try Unboxer.performCustomUnboxingWithData(data, closure: {
    let unboxer = $0
    let agent = Agent()
    agent.globalId = unboxer.unbox("globalId")
    agent.name = unboxer.unbox("name")

    // Etc for the rest of your properties

    return agent
})

In what file you put this code is completely up to you. Perhaps create a AgentLoader or put the code inline where you're loading your data, or add an extension on Agent.
The Custom Unboxing API only supports Dictionaries right now, so with the current API you'd have to iterate over the dictionaries, unboxing each one, but we could always add a Custom Unboxing API that has support for Arrays (the main Unbox() API does)

hmm.. This is not really clear to me.
Neither is the README.
Given that I have a Core Data object like @pavankataria how would I proceed to have Unbox integrated?

@drallgood Does the example code I provided above not work for you? (note that it was written in Swift 2). If you tell me exactly what is unclear I can try to explain and improve the README.

@JohnSundell
The code would probably work, IF i knew where to put it. ;)
I think a full example would be great. Data model and all


[client] Ability to download trained model as owner

Perhaps we shouldn't restrict downloading to just the owner.

This is already implemented by /api/v1/job/download/{id}/model.


Probably a typo

I'm quite interested in this library @ThomasDebrunner but the guide is a little "thin"
Is there a way to query "what are the messages I have loaded and I can receive"? I.e. can I iterate the MessageSet? I mean nothing is really hidden in Python, but is it OK to do so?
Is there a way to get it to receive any message, even it if it does not have the definition? I.e. I'd quite like for some cases to be able to know that custom messages exist that I am not aware of from their IDs.
It seems the  connection.recieve() pattern with the expectation would be useful if you're working with a single vehicle. However perhaps not for a system where you need to to manage multiple vehicles, or possibly if working with a flight stack that can handle multiple commands in parallel.

Thanks @ThomasDebrunner - I'm having a play and have started to get an idea of how it works. I do like the dynamic addition of message sets. I can see it as a very nice underlayer to a GCS that already has implementations of things like mission protocol, and just wants to be able to interwork nicely with a particular protocol set.


add margin-prop

Hi, great plugin!
it would be nice to dynamic add some margin (or other whitespace-workaround) to avoid that the last letter is glued to the first one....
e.g.:
before: TextTextText
after: Text Text Text
workaround
.marquee-text-text{
  margin-right: 10px;
}

Only the user decides what the content should look like, not the component.
You can add global margin by class .marquee-text-text or
<marquee-text>

Lorem ipsum dolor...

</marquee-text>


Fix nix package

Currently the Nix package fails to launch. This fixes that by wrapping the package with the necessary runtime libraries.

Gonna poke @valeth for this, looks good?

This looks almost exactly like the fix I was testing in my repo.
Only thing I would change is to interpolate packageName instead of hardcoding the binary name in the wrapper.

Should be good now. Also set mainProgram for getting the exe with getExe.


add cypress.io

This PR will also close #239 (is in new format)
name: Cypress.io
about: PR is filled with _vendor yaml. Cypress.io has just increased their "Team" tier to match the same user count. Difference in tiers:

Team

$75 / month
50 Users
10,000 Tests

Business

$300 / month
50 Users
10,000 Tests
Adds a handful of other features such as Spec Prioritization, Auto Cancellation, GitHub Enterprise & On-Prem GitLab

As you can see above, there is a 400% price increase for single sign on and features that should not cost extra in my opinion. 🤷♂

@techdarko thank you for catching and fixing my error! Appreciate it getting merged in.


Pull Request Issues

Automatic deployment with Now seems to be broken.
The 5 most recent pull requests seem to be blocked due to lacking Now authorization.

Should be good now!


Add ES Modules build

Also bumped the dependencies.
the .babelrc file is copied from redux

.babelrc and lib updates will occur with PR #630


Dependabot creates orphaned PRs

Package manage/ecosystem
java, maven

Manifest contents prior to update
a pom file

Updated dependency
multiple

What you expected to see, versus what you actually saw
Periodically, dependabot creates PRs without any labels. For these PRs, dependabot doesn't react to comments, e.g. @dependabot recreate commands are ignored. Additionally, it seems like creating these PRs exceed the 10 PR limit.

In the screenshot above, the "tagged" PR worked as expected, and dependabot was able to react to commands, etc. However, for the rest that were created (more than 20) - dependabot wasn't able to react.
The repository is private, however, I'm happy to provide any additional information.

Images of the diff or a link to the PR, issue or logs

Hi @SerCeMan I think we have an idea what happened here, we're looking into a fix. Will keep you up to date when we know more.

@SerCeMan sorry that we never circled back here.
Given that this was nearly 2 years ago, I suspect that the underlying issue was resolved, so I'm closing this.
If you still see this happening, please comment and I'll happily re-open, as this is not expected behavior.


Add tests for "new" and "start studio" commands

The asyncapi new and asyncapi start studio commands don't have tests. It would be great to test their functionality.
PS: To test stdin, have a look at https://stackoverflow.com/questions/56797392/oclif-prompt-testing.

@fmvilas  I am getting this error while setting up locally.

Would you mind submitting a pull request? It's hard to understand the problem like this 🙂

@Souvikns  The issue is partially fixed as the start studio PR #227 review is still pending.
Please review it as well 🙂


add inline to the declaration of compute_effective_sample_size(...)

To allow including the header in multiple compilation units.
see https://github.com/stan-dev/stan/issues/2615
Copyright: Tal Kedar
By submitting this pull request, the copyright holder is agreeing to license the submitted work under the following licenses:

Code: BSD 3-clause (https://opensource.org/licenses/BSD-3-Clause)
Documentation: CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

Thanks for the fixes.  This looks good to me.  For what it's worth, I approve, but we'll need somebody else to officially review and merge;  CCing @bob-carpenter to help us out.

Just asking so that I may learn how to do this better in the future: are the edits to the first comment of the original PR insufficient?

That’s good to know. Thank you.

Sorry about that, I assumed an edit would trigger a notification.

Looks like this broke the build, somehow? http://d1m1s1b1.stat.columbia.edu:8080/job/Stan/job/develop/199/
Stan develop is broken still since the 9th.

@seantalts Is there any update on this?  Builds 199 - 201, inclusive, seem to fail under the General SCM header with the following error, while 202 has a different issue and build 203 seems to be back to normal.  I still don't feel comfortable with Jenkins, so please do correct me if any of this is wrong.
Cloning the remote Git repository
Cloning repository git@github.com:stan-dev/cmdstan.git
 > /usr/bin/git init /home/jenkins-slave/jenkins-slave-files/workspace/Stan_develop-3CVGV42HAM7J3BLI3M44PCR6M52FN6ZQ65IEZ6TOSHJURSBO2PPA # timeout=10
Fetching upstream changes from git@github.com:stan-dev/cmdstan.git
 > /usr/bin/git --version # timeout=10
using GIT_ASKPASS to set credentials stan-buildbot github authentication
 > /usr/bin/git fetch --tags --progress git@github.com:stan-dev/cmdstan.git +refs/heads/*:refs/remotes/origin/*
ERROR: Error cloning remote repo 'origin'
hudson.plugins.git.GitException: Command "/usr/bin/git fetch --tags --progress git@github.com:stan-dev/cmdstan.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout:
stderr: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Yep, looks like the build is passing again - I suspect @mitzimorris fixed it in her PR.

I don't think my PR had anything to do with this, but there was certainly flakiness in getting things through Jenkins and/or Travis during the past two days.

I think those difficulties were due to infinite makefile jobs backing up
queues. I don't think anything got dropped but things waited for a long
time until I killed a few of the builds for those makefile PRs.
On Thu, Sep 13, 2018 at 15:28 Mitzi Morris<EMAIL_ADDRESS>wrote:

I don't think my PR had anything to do with this, but there was certainly
flakiness in getting things through Jenkins and/or Travis during the past
two days.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/stan-dev/stan/pull/2622#issuecomment-421124379, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAxJ7O1U400o4ke0H1p0CWxu_LLvH1WLks5uarHrgaJpZM4WVgBw
.

--
📲

PS Also, you can see what builds are executing and queued in the classic view. Just to reiterate, you can go back to classic and escape the "Blue Ocean" view that is now the default when you click a Jenkins link from GitHub with the arrow in a box ("door") icon in the top right next to logout:


Won't open under windows

I am attempting to install this plugin and it is failing.  The error it gives me is:
the following resources are not suitable for current version or edition:
C:\path\docgen-17.0.5.zip
error in opening zip file
Windows also cannot open the zip file.
I'm using MagicDraw 17.0.5 with SysML, Camio Business Modeler booth installed and up.  Is there something I'm doing wrong?

I don't know if mdk is compatible with your version, try using anything from https://bintray.com/openmbee
Those might work


Trying to build export templates on windows fails.

Here are the errors:

should be fixed in PR: https://github.com/okamstudio/godot/pull/1555

Yup, fixed, closing.


Red borders around images

So right now i have a problem where all of my <Image /> tags have red borders around them. I tried loading different images to make sure that it wasn't something to do with the location of the image but i can't seem to fix it. Here is a screenshot of what i'm seeing. Does anyone have any ideas? Also i was wondering about the best way to debug this

Did you add images to Images.xcassets in Xcode? Is there anything in Xcode logs?

I'm using <Image source={{uri: 'http://randomimageurl' }}  style={{width:20, height:20}} /> so i shouldn't need to worry about Images.xcassets unless i'm using require('image!imagename'), right?

@joshbedo - can you post a project where this happens to Github and link us to it? that would probably be the easiest way for us to discover the problem

@brentvatne Yup, I'm using React Native Router - https://github.com/t4t5/react-native-router

So i recreated the application and it doesn't happen anymore.. I guess someone happened with the xcodeproj or some other area that broke images.

Hey guys, I'm having the same issue. Over in the #reactnative irc.
@brentvatne

Hey @jonmorehouse, I'm having this issue as well...were you able to find a fix for it besides just recreating the project?

Actually, I found out why it wasn't working for me...I hadn't included the RCTImage.xcodeproj library in my iOS Project. Once I added it and linked the product, everything worked fine.


Tabnine clashes with auto-import from VSCode while using JavaScript

This is how auto-import works in VSCode & it works without installing any extension but when I install Tabnine it ruins the auto-import.

This issue is in the testing stage, we will appreciate any feedback on this, if anyone wants to be a beta tester please reply and I will send you vsix with beta version.

The auto import support was released in the 2.8.4 version.
To enable this, go to settings and set the Tabnine: Experimental Auto Imports to true.

Still not working

The auto import support was released in the 2.8.4 version.
To enable this, go to settings and set the Tabnine: Experimental Auto Imports to true.


unable to get local issuer certificate

Question, Bug, or Feature?
Type: Bug
Enter Task Name: DownloadSecureFileV1 / InstallSSHKeyV0
Environment

TFS on-premises

If using TFS on-premises, provide the version:

About Azure DevOps Server
Version Dev17.M153.3

Agent - Hosted or Private:
private Linux agent running Azure Pipelines agent v2.158

Issue Description
Both tasks fail with infamous 'unable to get local issuer certificate'. server certificate is added to system-wide cert store - agent does not complain when connecting to the queue nor git complains when fetching sources.
I established that the source of an error is NodeJS bundled with Azure pipelines agent.
For some reason it does not fetch system-wide SSL certificates, it seems to use cert store bundled with NodeJS only.
It does not help that Azure Pipelines agent is bundled with NodeJS v6.10.3 - some additional SSL/TLS related configuration options were introduced in 6.11 and more recently in NodeJS v7 and above.
I found few workarounds that do work, but nothing that could last.

export NODE_EXTRA_CA_CERTS=/etc/ssl/certs/ca-certificates.crt
export SSL_CERT_DIR=/etc/ssl/certs and run agent interactively with ./run.sh. This option still did not work for agent configured as service despite adding exports above to user profile

add the following at the beginning of bin/AgentService.js:
process.env.NODE_EXTRA_CA_CERTS='/etc/ssl/certs/ca-certificates.crt';
process.env.SSL_CERT_DIR='/etc/ssl/certs';

This will only last as long the agent will not be updated / reinstalled from server.
I am looking for a proper fix.
Task logs
##[debug]Evaluating condition for step: 'Install an SSH key for tfsa'
##[debug]Evaluating: succeeded()
##[debug]Evaluating succeeded:
##[debug]=> True
##[debug]Result: True
##[section]Starting: Install an SSH key for tfsa
==============================================================================
Task         : Install SSH key
Description  : Install an SSH key prior to a build or deployment
Version      : 0.151.2
Author       : Microsoft Corporation
Help         : [More information](https://go.microsoft.com/fwlink/?linkid=875267)
==============================================================================
##[debug]agent.TempDirectory=/home/tfs-build-agent/agent2/_work/_temp
##[debug]loading inputs and endpoints
##[debug]loading INPUT_HOSTNAME
##[debug]loading INPUT_SSHPUBLICKEY
##[debug]loading INPUT_SSHKEYSECUREFILE
##[debug]loading ENDPOINT_AUTH_SYSTEMVSSCONNECTION
##[debug]loading ENDPOINT_AUTH_SCHEME_SYSTEMVSSCONNECTION
##[debug]loading ENDPOINT_AUTH_PARAMETER_SYSTEMVSSCONNECTION_ACCESSTOKEN
##[debug]loading SECUREFILE_TICKET_7e2886f1-72fd-4665-9534-59f2641a1447
##[debug]loaded 7
##[debug]Agent.ProxyUrl=undefined
##[debug]Agent.CAInfo=undefined
##[debug]Agent.ClientCert=undefined
##[debug]Agent.SkipCertValidation=undefined
##[debug]sshPublicKey=ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQ7dWn3DIdrnB5gam7mqu1h+WwcJEggXSzBL/vO61xynyqfG+v8Kzs/N1yMCTQqeUzbU6LqJImljfsrOoXNtM168vCG73WP+g+7pvziRPpLB5WKZlD8qV9wSZZYpxnd+rYI+5ZP84cS8PmimjXAaGKOEbI335rBboAdIpUNvoefJrGmb7+YzUozW3zQMcKLc0YoRc4GTYnZCh3B7AW8i4VTVE5gEXmYincY124uaNy2fOAXOtH2kQck1zGpdu8aasVeLqxhCx6hWPFHabsaJ2f4LCIKxNKmsHTDLrTR0PIB0D9U940h4TPYAyrqi9CByNcauaibUxykvu+UUnSDJ2V<EMAIL_ADDRESS>##[debug]hostName=|1|RyX1HGab+gSa29Q99VApWbD5XPE=|ROzy+vq75uqQc+p9/MWisspu3xw= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9ZeVJ4ejjhE5QgjIz1iB8imXEsYpbVEzVJ2JEEtpG6nahg3mN8CEyv0gtSGt9HoPtiAMPieIcvGLVGmCEfOGJ3utifFrJAysVp2h1zlnt7ttwpF+X+Di30+XUZy7goyBUx2ZnICNKM+aPByQAPs2ohR8hXX0ErM/KsfjrCJ2rOQrkdRmI6OPr+HMudrHiUU7EfhW9zlj10pY1JIJfmuqR/h90zFNYxedkxUJnDh72RuelT+EvN9Y8bY/7KZt61FHYQmx8iE459ULdnXoRr0BhgZ2oH8m+bUlJYDmFpcQ2Dy5BYBqO3WNUyb75uYDU4wLOYXHzgigVoYQc5xsS/6Q/ |1|d/9td4eq+52WDdMl271Y02P+po0=|jtBAGpjXEvJCX6wMAd+aZEl9GYI= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9ZeVJ4ejjhE5QgjIz1iB8imXEsYpbVEzVJ2JEEtpG6nahg3mN8CEyv0gtSGt9HoPtiAMPieIcvGLVGmCEfOGJ3utifFrJAysVp2h1zlnt7ttwpF+X+Di30+XUZy7goyBUx2ZnICNKM+aPByQAPs2ohR8hXX0ErM/KsfjrCJ2rOQrkdRmI6OPr+HMudrHiUU7EfhW9zlj10pY1JIJfmuqR/h90zFNYxedkxUJnDh72RuelT+EvN9Y8bY/7KZt61FHYQmx8iE459ULdnXoRr0BhgZ2oH8m+bUlJYDmFpcQ2Dy5BYBqO3WNUyb75uYDU4wLOYXHzgigVoYQc5xsS/6Q/ |1|VJWwLf/mldc2naUNSJdVuR+MwxCob5qZVR8MgT+jfiU= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9ZeVJ4ejjhE5QgjIz1iB8imXEsYpbVEzVJ2JEEtpG6nahg3mN8CEyv0gtSGt9HoPtiAMPieIcvGLVGmCEfOGJ3utifFrJAysVp2h1zlnt7ttwpF+X+Di30+XUZy7goyBUx2ZnICNKM+aPByQAPs2ohR8hXX0ErM/KsfjrCJ2rOQrkdRmI6OPr+HMudrHiUU7EfhW9zlj10pY1JIJfmuqR/h90zFNYxedkxUJnDh72RuelT+EvN9Y8bY/7KZt61FHYQmx8iE459ULdnXoRr0BhgZ2oH8m+bUlJYDmFpcQ2Dy5BYBqO3WNUyb75uYDU4wLOYXHzgigVoYQc5xsS/6Q/
##[debug]sshPassphrase=null
##[debug]check path : /home/tfs-build-agent/agent2/_work/_tasks/InstallSSHKey_5c9af2eb-5fc5-42dc-9b91-dc234a8c4400/0.151.2/task.json
##[debug]adding resource file: /home/tfs-build-agent/agent2/_work/_tasks/InstallSSHKey_5c9af2eb-5fc5-42dc-9b91-dc234a8c4400/0.151.2/task.json
##[debug]system.culture=en-US
##[debug]sshKeySecureFile=7e2886f1-72fd-4665-9534-59f2641a1447
##[debug]System.TeamFoundationCollectionUri=https://tfsb.abb.com/tfs/EPBP/
##[debug]SYSTEMVSSCONNECTION auth param ACCESSTOKEN = ***
##[debug]Agent.ProxyUrl=undefined
##[debug]secure file name for id 7e2886f1-72fd-4665-9534-59f2641a1447 = id_rsa_tfsa
##[debug]Agent.TempDirectory=/home/tfs-build-agent/agent2/_work/_temp
##[debug]Absolute path for pathSegments: /home/tfs-build-agent/agent2/_work/_temp,id_rsa_tfsa = /home/tfs-build-agent/agent2/_work/_temp/id_rsa_tfsa
##[debug]Downloading secure file contents to: /home/tfs-build-agent/agent2/_work/_temp/id_rsa_tfsa
##[debug]task result: Failed
##[error]Error: unable to get local issuer certificate
##[debug]Processed: ##vso[task.issue type=error;]Error: unable to get local issuer certificate
##[debug]Processed: ##vso[task.complete result=Failed;]Error: unable to get local issuer certificate
##[debug]secure file name for id 7e2886f1-72fd-4665-9534-59f2641a1447 = id_rsa_tfsa
##[debug]Agent.TempDirectory=/home/tfs-build-agent/agent2/_work/_temp
##[debug]Absolute path for pathSegments: /home/tfs-build-agent/agent2/_work/_temp,id_rsa_tfsa = /home/tfs-build-agent/agent2/_work/_temp/id_rsa_tfsa
##[debug]Deleting secure file at: /home/tfs-build-agent/agent2/_work/_temp/id_rsa_tfsa
##[debug]rm -rf /home/tfs-build-agent/agent2/_work/_temp/id_rsa_tfsa
##[debug]removing file
##[debug]End

Error logs
##[error]Error: unable to get local issuer certificate

Is there an option to runa pre-job task without writing a custom task? In that case, environment variables could be set up, CA file downloaded, etc.
In my case git required custom cert too. By default, job checks out source in a pre-job, however if there is checkout task then it does not. So I manually specified checkout and just before that, a PowerShell task to make git config changes. But yeah, I cannot do this with DownloadSecureFile task.

@gpomykala Have you considered defining NODE_EXTRA_CA_CERTS and SSL_CERT_DIR as pipeline variables? They are exposed as environment variables during run time

Hello,
Thanks for a suggestion. Although the workaround might work it is not really suitable in any scenario bigger than 1 agent / 1 pipeline:

NODE_EXTRA_CA_CERTS and SSL_CERT_DIR belongs to agent configuration rather than pipeline configurations
there may be multiple pipelines using same agent - it is not feasible to set those on every pipeline
there may be multiple agents linked to a single pipeline and they may require different values of NODE_EXTRA_CA_CERTS and SSL_CERT_DIR therefore setting these variables in a pipeline would be not effective

I believe it belongs to the agent configuration and could be part of agent installation wizard

@gpomykala Your arguements are valid. I have tried another way for this issue. I found that all you need is to set NODE_EXTRA_CA_CERTS value in environment. I have added a bash task with inline script
echo "##vso[task.setvariable variable=NODE_EXTRA_CA_CERTS]$(Agent.CAInfo)"
before the key vault task. This will set the variable to whatever CA cert the agent is configured with. Though this means you will be editing multiple pipelines, multiple agents configured with multiple CA will be supported

Thanks, that looks promising, i will check the script above

Hello, @gpomykala!
Could you please update your private agent to the latest version and run the pipeline again?
You also can use Node.js Tool Installer task to install the latest version of the node.js in your agent.
If the issue still remains could you please attach new logs for DownloadSecureFileV1 and  InstallSSHKeyV0 tasks running in debug mode.

Hello, @gpomykala!
Closing now this issue due to a lack of reproducible information, please feel free to reopen it.

this can be easily reproduced on Azure DevOps server 2019.1.1 behind a firewall, the server needs to have a corporate certificate (hence : not available via WAN) signed by a corporate CA (also not available / reachable via WAN, CA certificate not shipped with any browser but installed on each client machine). Its definitely a bug.

Hi everyone, reopened this to investigate further

I am getting this error even though I am using  NODE_EXTRA_CA_CERTS: 'C:\Certs\MYCORPROOT.pem'
Here is my log:
(node:2388) Warning: Ignoring extra certs from `C:\Certs\MYCORPROOT.pem`, load failed: error:02001003:system library:fopen:No such process

##[debug]Attempt failed. Number of tries left: 2
##[debug]unable to get local issuer certificate
##[debug]Error: unable to get local issuer certificate
    at Error (native)
    at TLSSocket.<anonymous> (_tls_wrap.js:1092:38)
    at emitNone (events.js:86:13)
    at TLSSocket.emit (events.js:185:7)
    at TLSSocket._finishInit (_tls_wrap.js:609:8)
    at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:439:38)

@nadcraker maybe agent user has no permissions to access that file, huh?

While this is being sorted out, I've found excellent script that generates .pem file for NODE consumption from Windows Trusted Root Certificate Store: Azure DevOps Server pipeline build fails when using self-signed SSL certificate with "unable to get local issuer certificate" during NuGet restore
Credit to SO alifen
# If running in a pipeline then use the Agent Home directory,
# otherwise use the machine temp folder which is useful for testing
if ($env:AGENT_HOMEDIRECTORY -ne $null) { $TargetFolder = $env:AGENT_HOMEDIRECTORY }
else { $TargetFolder = [System.Environment]::GetEnvironmentVariable('TEMP','Machine') }

# Loop through each CA in the machine store
Get-ChildItem -Path Cert:\LocalMachine\CA | ForEach-Object {

    # Convert cert's bytes to Base64-encoded text and add begin/end markers
    $Cert = "-----BEGIN CERTIFICATE-----`n"
    $Cert+= $([System.Convert]::ToBase64String($_.export([System.Security.Cryptography.X509Certificates.X509ContentType]::Cert),'InsertLineBreaks'))
    $Cert+= "`n-----END CERTIFICATE-----`n"

    # Append cert to chain
    $Chain+= $Cert
}

# Build target path
$CertFile = "$TargetFolder\TrustedRootCAs.pem"

# Write to file system
$Chain | Out-File $CertFile -Force -Encoding ASCII

# Clean-up
$Chain = $null

# Let Node (running later in the pipeline) know from where to read certs
Write-Host "##vso[task.setvariable variable=NODE.EXTRA.CA.CERTS]$CertFile"

@gpomykala thanks for reporting! Let us take a look at it as possible enhancement - we could probably just use NODE_EXTRA_CA_CERTS variable to set up as Agent.CAInfo value (or consider any other ways of resolution here).


Marten 4.00-alpha9, Could not load file or assembly 'System.Runtime.Loader'  when using .NET 4.6.2

My project is winform using .Net Framework4.62, this error occur when using any Marten session, I found maybe caused by this https://stackoverflow.com/questions/45741039/could-not-load-file-or-assembly-system-runtime-loader-for-adding-application-p.

Sorry, Marten v4 does not support .NET Framework. You can either stick with v3 or move your Winforms application to NET Core 3.1+.


<EMAIL_ADDRESS>development profile error (ECONNREFUSED 443 port with local NPM registry)

Hello,
Trying to run<EMAIL_ADDRESS>with dev profile and a local NPM registry that doesn't serve https (443)
We've got an error ECONNREFUSED when calling:
const dev = true;
const nextApp = next({ dev });
nextApp.prepare().then(...)

We got this Error: connect ECONNREFUSED %IP_ADDRESS%:443
Our .npmrc has a setting like this, using a local registry: registry=http://mycompany.intranet (notice the http://)
Actually our local registry doesn't run in https (only http) thus causing the :443 port not to be exposed.
Investigating further, we've find out that a dependency (update-check) tries to connect directly with our registry ignoring that protocol setting, connecting with https and getting this "connection refused"
https://github.com/zeit/next.js/blob/canary/server/index.js#L118
(update-check explicitly using https ignoring the protocol setting coming from the .npmrc: https://github.com/zeit/update-check/blob/master/index.js#L2)

@ghengeveld Yes, this is kinda a "solution" that solves the problem but I believe that update-check should respect these settings on .npmrc (it does this to the other parts of the registry URL like "hostname" and "pathname")
While this is an issue in update-check module, it's a direct dependency (with a fixed version) and it prevents Next.js from running with these settings.
Another suggestion, independent from what's being done inside checkForUpdate, it's to maybe add an option to skip this "check for updates".

Ah I see, Next.js should bump its version of update-check 👍
Maybe rename this issue to capture that notion.
PS Sorry if I came across too blunt.

Btw this problem still exists. When I try to run<EMAIL_ADDRESS>I still get this error (only with regards to port 80 instead of the here mentioned 443).
The update-check module that got installed is "1.4.0".


Add EphemeralDevicePartitioner for ephemeral disk repartition

Hi,
This PR focused on repartition ephemeral disk and was originated from https://github.com/cloudfoundry/bosh-agent/issues/184#issuecomment-416772112

Implementd EphemeralDevicePartitioner
It uses agent's UUID as partition name prefix and detects if the partition name includes its UUID. If not, It will remove old partition and partition new spaces.
Removed ScrubEphemeralDisk option

We testd follow senarios:

Change VM memory -> OS reload ->  reparition ephemeral disk
Change stemcell -> OS reload -> reparition ephemeral disk
OS reboot -> do not reparition ephemeral disk

/cc @mattcui @dpb587 @jfmyers9  Please help to review.
Thanks!

@jfmyers9 Hi, Jim. Thank you for your comments.
For suggestion 1, I agreed with the circular dependency issue and complicated function declarations for using SettingsSource directly. So I wrote paritioner own parse settings.json function. For your comment, I had one question about passing functions parameters. If use agentID from settingsService.GetSettings(), agent.Bootstrap will pass agentID to platform.partitionDisk thou three Platform functions(platform.SetupEphemeralDisk -> platform.createEphemeralParitionsOnRootDevice/platform.paritionEphemeralDisk -> platform.partitionDisk). Is it not too complicated?

Hi @edwardstudy,
I think it makes sense to add the Agent ID to the SetupEphemeralDiskWithPath function. We think the signature: SetupEphemeralDiskWithPath(devicePath string, desiredSwapSizeInBytes *uint64, labelPrefix string) (err error) would make sense, and then the bootstrap process would provide the settings.AgentID as the labelPrefix. We could then use the labelPrefix as the Name field when constructing the disk.Partition struct.
Let us know if you have any other questions,
@pivotal-mp && @jfmyers9, CF BOSH

@edwardstudy we just tried to run bin/test-unit against this PR and it didn't compile.  Are there other changes that need to be merged to make this work?
It seems like you are force-pushing over the original commits.  While we appreciate the intention to keep the commit history clean, it is making it harder for us to understand what has changed through our conversation.  For the time being, would you mind pushing new commits instead of force-pushing over the old ones while we work on getting this PR in shape to merge?
Thanks,
@belinda-liu && @jaresty

@jaresty I'll check it. Thanks.

@jaresty Hi. I had to rebase commits to compile rightly.
Thank you for the review.

Hi @edwardstudy - it looks like the tests are still failing on this. Have you had a chance to follow up on @jaresty's comment if you're still interested in this?
Additionally, we reviewed some of the code and have some concerns about how much code is duplicated from the parted partitioner - this will introduce quite a bit of maintenance for us. Can you consider delegating more responsibility for formatting to the regular PartedPartitioner and keep the EphemeralDevicePartitioner much smaller and only concerned with the agent disk label checking? Also, we were wondering whether it is necessary to change sfdisk_partitioner.go at all - it does not seem to be used by the new code paths.
One other thing we noticed is that it looks like we're now always using parted instead of sfdisk in linux_disk_manager.go. Is this intentional? I think we should try to leave that behavior as is. It sounds like this is only affecting you on Xenial, so I think it should be safe to keep it inside the parted switch case.
@s4heid && @dpb587-pivotal

Hi, @s4heid. I just ran test-unit and didn't meet any error:
57916] Sigar Suite - 5/5 specs ••••• SUCCESS! 3.111793ms PASS

Ginkgo ran 48 suites in 2m36.138889188s
Test Suite Passed

 Checking with golint...

 Govetting

 go vet success

SUCCESS

Could you give me more details?

Hi, @s4heid . About sfdisk, I thought it could not check the old partition are parted by created by bosh and always partition device directly. So EphemeralDevicePartitioner should always use parted command.

Hi, @s4heid. The reason for changing sfdisk_partitioner.go is that we added GetPartitions to the Partitioner interface.

Hi, @jfmyers9. Thank you for review. I update commits and comments.
Bests,
@edwardstudy


Discoloured tongue on U+1F603

The mouth's outline is visible through the tongue in U+1F603's artwork. Reordering the layers fixes the issue.
I'm attaching a screenshot of the original artwork and the fixed version for illustration, as the orange outline is hard to spot over a pink background at low resolutions.

No longer an issue.
https://github.com/googlefonts/noto-emoji/blob/master/svg/emoji_u1f603.svg
https://github.com/googlefonts/noto-emoji/blob/master/png/128/emoji_u1f603.png


renamed HttpAdapterDiscovery to HttpClientDiscovery

fix #11

:+1:
Note, that it requires the Methods client to be removed.

this would be fixed by https://github.com/php-http/httplug/pull/69 right?

Yup


ENH: Incorporate into version control with DataLad

enh: installation of DataLad on HPC
enh: how to create the DataLad dataset
enh: add data to DataLad

Going in a good direction, thanks for setting the ball rolling.

PS I'm currently working on running MRIQC on the cluster with Datalad provenance tracking.


Report domains

Hello
I am also make a scam blocklist fraudulent online stores that primarily target Hungarian users, I thought you might add it to your own list.
Raw link
Repo link

Hi, thank you for bringing this up and maintaining such list!
Currently we are only adding domains from crypto-related scams so unfortunately we won't add your blocklist.


COOK-4711 Remove check for 'vagrant' user as that depends on the kitchen driver

in use and doesn't actually have anything to do with activemq running.

@dschlenk I've made the same change here https://github.com/opscode-cookbooks/activemq/commit/e284ab5c842be3d105e9e555b95757fa7d21653e

Thanks @tas50! Great to have this cookbook get some attention again!

We're going to try to quickly merge and release changes now.  There should be a release of this cookbook coming soon


Fix prompt() calls, especially for asking for passwords

What current issue(s) does this address, or what feature is it adding?
prompt-toolkit v2 changed how to use prompt(..). this PR fixes the problems with #487
How did you solve this problem?
assigning session.prompt to self.prompt
How did you make sure your solution works?
manual tests
Are there any special changes in the code that we should be aware of?
no
Please check the following, if applicable:

[ ] Did you add any tests?
[X] Did you run make lint?
[X] Did you run make test?
[X] Are you making a PR to a feature branch or development rather than master?
[ ] Did you add an entry to CHANGELOG.rst? (if not, please do)

Coverage remained the same at 79.743% when pulling<PHONE_NUMBER>0199e6be949392750e63716ac3fb19 on prompt-fix into ca816cb09ec638eca3da96d972770b2aa65def30 on development.


SyntaxError: f-string: expecting

Python version: 3.11.8
[2024-08-09 04:51] Traceback (most recent call last):
File "E:\AI\ComfyUI_windows_portable\ComfyUI_windows_portable\ComfyUI\nodes.py", line 1941, in load_custom_node
module_spec.loader.exec_module(module)
File "", line 940, in exec_module
File "", line 241, in call_with_frames_removed
File "E:\AI\ComfyUI_windows_portable\ComfyUI_windows_portable\ComfyUI\custom_nodes\comfyui_overly_complicated_sampling_init.py", line 1, in
from .py import nodes
File "E:\AI\ComfyUI_windows_portable\ComfyUI_windows_portable\ComfyUI\custom_nodes\comfyui_overly_complicated_sampling\py\nodes.py", line 5, in
from .sampling import composable_sampler
File "E:\AI\ComfyUI_windows_portable\ComfyUI_windows_portable\ComfyUI\custom_nodes\comfyui_overly_complicated_sampling\py\sampling.py", line 5, in
from .filtering import FILTER_HANDLERS
File "E:\AI\ComfyUI_windows_portable\ComfyUI_windows_portable\ComfyUI\custom_nodes\comfyui_overly_complicated_sampling\py\filtering.py", line 5, in
from . import expression as expr
File "E:\AI\ComfyUI_windows_portable\ComfyUI_windows_portable\ComfyUI\custom_nodes\comfyui_overly_complicated_sampling\py\expression_init_.py", line 1, in
from . import types, expression, handler, util, validation
File "E:\AI\ComfyUI_windows_portable\ComfyUI_windows_portable\ComfyUI\custom_nodes\comfyui_overly_complicated_sampling\py\expression\types.py", line 177
return f"<FUNAP {self.name}\n{pad}{self.args.pretty_string(depth + 1)}{f", {self.kwargs.pretty_string(depth + 1)}" if self.kwargs else ''}\n{pad[:-2]}>"
^
SyntaxError: f-string: expecting '}'
[2024-08-09 04:51] Cannot import E:\AI\ComfyUI_windows_portable\ComfyUI_windows_portable\ComfyUI\custom_nodes\comfyui_overly_complicated_sampling module for custom nodes: f-string: expecting '}' (types.py, line 177)
(IMPORT FAILED): E:\AI\ComfyUI_windows_portable\ComfyUI_windows_portable\ComfyUI\custom_nodes\comfyui_overly_complicated_sampling

thanks for the report, i guess it didn't like the embedded f-string. i refactored a bit to remove that. can you update and check if you still have the issue?

that was actually a different place with similar code. now i think it should be resolved. sorry about that.

Thank you very much for your amazing work, the issue has been resolved

no problem! i'm excited that someone's actually going to try this monstrosity. :) please feel free to create more issues if you run into problems (or just start a discussion with questions about it).
eventually i plan to make some examples and suggested recipes for doing stuff.


Fix wrong Reviewed-on rendering in PR

Related #31211
Before:

After:

current PR has been included in #31365

Thank you for figuring out the problem. I added you as Co-authored-by in #31365 🙏


How to stop Tabs from being removed from a save list ?

How to stop Tabs from being removed from a save list ?
Tabs are removed from a saved list when selecting and opening a tab from a saved tab list.
Cant change this behavior from the Onetab Options menu, under:
"Behavior when item in a list is clicked",
Choice options are: "Open & Remove", "Open", or "None".
If the setting is changed from Open & Remove", to "Open" the tab will still be removed from the saved tab list instead of remaining on that list.

Hi there, sorry I can't reproduce it. After I change "Behavior when item in a list is clicked" as "Open", the item I clicked won't be removed from the list. Are you using the latest version of extension? If so, could you provide the details about your browser version?


Do not depend on devtools in db-admin

In general, we need to improve how our wallet is configured. Someone should spec out this work.
Originally posted by @andrewgordstewart in https://github.com/statechannels/statechannels/pull/2797#discussion_r515669863

devtools is no longer a db-admin dep

devtools is no longer a db-admin dep


Ajax call: update_order_review

Can you reproduce this issue on default Wordpress theme (eg Storefront)?
yes
Can you reproduce this issue when all other plugins are disabled except WooCommerce, Polylang and Hyyan WooCommerce Polylang Integration?
yes
What product versions and settings are you using when this issue occurs?

PHP: 7.0.25
WordPress: 4.8.3
WooCommerce: 3.2.3
Polylang: 2.2.4 (free version)
Hyyan WooCommerce Polylang Integration: 1.0.3
Browser: Chrome, Firefox

Steps to Reproduce

Put product in the cart.
Go to checkout
Change billing address or refresh page
Wait the ajax call for update order review

What I Expected
The labels in woocommerce-checkout-review-order-table and in woocommerce-checkout-payment don't change the current translation.
What Happened Instead
After the ajax call (update_order_review), the labels in woocommerce-checkout-review-order-table and in woocommerce-checkout-payment change in the original form

.

@avezzelli please use the code from the master branch, this issue was fixed in master but the fix is not published in Wordpress Repo yet.
Please feel free to reopen if this stills an issue

Hi, sorry, new to GitHub.
Where can I find that code from the master branch to fix the issue?
I've looking for another issue ID but not lucky and don't know where to find the "master ranch code".
Thanks in advance for your help!


bugfix: we weren't closing the streams

Codecov Report

Merging #97 (5ad03c7) into main (8ccb906) will decrease coverage by 0.23%.
The diff coverage is 0.00%.

@@             Coverage Diff              @@
##               main      #97      +/-   ##
============================================
- Coverage     81.30%   81.06%   -0.24%
  Complexity      144      144
============================================
  Files            39       39
  Lines          1717     1722       +5
  Branches        268      268
============================================
  Hits           1396     1396
- Misses          216      221       +5
  Partials        105      105

Impacted Files
Coverage Δ

...va/io/kaoto/backend/deployment/ClusterService.java
65.13% <0.00%> (-2.22%)
: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 8ccb906...5ad03c7. Read the comment docs.


Make crates-io registry URL optional in config; ignore all changes to source.crates-io

Hi! When I was working on the instructions for source replacement in this crates.io PR, I found that when I'm replacing source.crates-io, I still have to specify some value for registry, or else I get this:
error: no source URL specified for `source.crates-io`, need either `registry` or `local-registry` defined

This seems weird and annoying to me: cargo definitely knows the registry URL for crates-io, and I'm trying to replace it anyway.
So the first commit in this PR makes it optional, so that you don't have to specify a registry url for crates-io: it uses SourceId::crates_io, like it would if we didn't have any source configs at all.
The second commit in this PR might go too far, and/or might break existing uses of cargo, I'm not sure. In my opinion, source.crates-io should only be able to be replaced and never changed directly-- crates-io should always be crates-io, and I should be able to assume that in any project. So the second commit ignores all modifications to source.crates-io's registry, local-registry, and directory, and warns that they're being ignored.
I tried to search github to see if anyone was using these keys with source.crates-io, but since github's search ignores . (ARE YOU LISTENING GITHUB? I WOULD LIKE TO SEARCH WITH PUNCTUATION PLEASE), there's a lot of false positives to wade through. I didn't see anything in the first few pages though.
I'm happy to make whatever modifications to this!

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

Thanks for the PR! This looks good to me, but perhaps we can hold off on enabling the warnings just yet? Now that support for custom registries is on beta (I think) we may want to wait for this to hit stable, update cargo vendor and cargo local-registry tools, and then turn on the warnings?

Thanks for the PR! This looks good to me, but perhaps we can hold off on enabling the warnings just yet? Now that support for custom registries is on beta (I think) we may want to wait for this to hit stable, update cargo vendor and cargo local-registry tools, and then turn on the warnings?

Sounds good! I've removed the 2nd commit but I've got it on a branch for later resubmission.

Hm this'll still cause existing configurations to start failing though, right? That is, they'll start interpreting as having two sources configured which is an error?
Put another way, the test changes shouldn't be required here, just enough to make warnings go away.

Hm this'll still cause existing configurations to start failing though, right? That is, they'll start interpreting as having two sources configured which is an error?
Put another way, the test changes shouldn't be required here, just enough to make warnings go away.

I don't think this change will break existing configurations-- Cargo's current behavior is to silently ignore changes to crates.io's registry URL (but it requires you to specify a registry URL value, which is the problem I'm trying to solve because I shouldn't have to specify something that gets ignored anyway).
The test changes are not required. I've backed them out and the tests still pass, and instead I've added a new test to show that crates.io's registry URL being missing when replacing the source is no longer an error, which is the only behavior I'm intending this commit to change. This PR should have nothing to do with warnings anymore.
Am I missing something?

Oh oops! I read this condition:
if name == "crates-io" && srcs.is_empty()

and missed the second clause of src.is_empty(). If you always pushed that'd be an error w/ today, but with that there's no error at all! Sorry for the runaround!
@bors: r+

:pushpin: Commit 2490f3f has been approved by alexcrichton

:hourglass: Testing commit 2490f3f with merge 26dcd3e...

:sunny: Test successful - cargo-cross-linux, cargo-linux-32, cargo-linux-64, cargo-mac-32, cargo-mac-64, cargo-win-gnu-32, cargo-win-gnu-64, cargo-win-msvc-32, cargo-win-msvc-64
Approved by: alexcrichton
Pushing 26dcd3e83b90587fdc6ec256a00459ce531c0996 to master...

Hooray!!!! Thank you :) <3 <3 <3


Join Table for Multitenancy?

Hi and thanks for this awesome generator 🙌
I just wanted to open a discussion if the --tenantable option should default to use a join table between User and Account, so that a user can belong to many accounts.
This is indeed the favored approach by most authentication and role systems, and reduces the hassle when having to introduce m:n here later.
WDYT?
Happy to dive in if this is helpful.

Hum, I thought about it several times... I see tenant applications in three ways:

User
User -> Account
User -> Member -> Account

I choose number two most because of simplicity, also this model can attend to many kinds of applications for a long time before you need to move to number three, and this migration is not that hard, see this script generated by chat-GPT 🤨.
Number three can introduce more complexity such as account selector, account_middleware, etc... in this case, I don't want to create a generator for that leading for the developer to do it.

Gotcha, closing this 👍🏻


Axios headers not set

Environment

Operating System: Linux
Node Version:     v20.14.0
Nuxt Version:     -
CLI Version:      3.12.0
Nitro Version:    -
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      -
Runtime Modules:  -
Build Modules:    -

"@pinia-orm/axios": "^1.9.1",

Reproduction
idk how to create a "minimal" reproduction of this. Should I create a fresh repo?
Describe the bug
I'm using oidc-client-ts, with quasar.
oidc-client-ts is async
I tried import axios from "axios"
but I have now created a boot file
boot/axios.js
import { boot } from 'quasar/wrappers'
import axios from 'axios'

export const AxiosSymbol = Symbol('axios')
export const axiosInstance = axios.create()

export default boot(({ app }) => {
  app.provide(AxiosSymbol, axiosInstance)
})

boot/oidc.js
import {boot} from "quasar/wrappers";
import {UserManager} from "oidc-client-ts";
import VueOIDCClient from "src/plugins/VueOIDCClient.js";
import {axiosInstance} from "boot/axios.js";

const settings = {
  authority: process.env.OIDC_AUTHORITY,
  client_id: process.env.CLIENT_ID,
  redirect_uri: window.location.origin + '/oidc-callback',
  post_logout_redirect_uri: window.location.origin,
  response_type: 'code',
  scope: 'openid email profile roles',
  automaticSilentRenew: true,
}

export const manager = new UserManager(
  settings
)

export default boot(async ({ app }) => {
  async function tokenInterceptor () {
    axiosInstance.interceptors.request.use(config => {
      app.config.globalProperties.$manager.getUser().then(user => {
      // console.log('user:', user)
      // console.log('access_token:', user.access_token)
          config.headers.Authorization = `Bearer ${user?.access_token}`
      })
      return config
    }, error => {
      return Promise.reject(error)
    })
  }

  return new Promise(resolve => {
    app.use(VueOIDCClient, {
      debug: process.env.NODE_ENV !== 'production',
    })
    tokenInterceptor()
    resolve()
  })
})

plugins/vueoidcclient.js
import {VueOIDCClientSymbol} from "src/plugins/VueOIDCClientSymbol.js";
import * as Oidc from "oidc-client-ts";
import {manager} from "boot/oidc.js";

export default {
  install: (app, options) => {
    if (options.debug) {
      Oidc.Log.setLogger(console)
    }

    app.config.globalProperties.$manager = manager
    app.provide(VueOIDCClientSymbol, manager)
  }
}

At this point, tokenInterceptor does nothing.
I also have store/index.js
import { store } from 'quasar/wrappers'
import { createPinia } from 'pinia'
import { createORM } from 'pinia-orm'
import {createPiniaOrmAxios} from "@pinia-orm/axios";
import {manager} from "boot/oidc.js";
import {axiosInstance} from "boot/axios.js";

/*
 * If not building with SSR mode, you can
 * directly export the Store instantiation;
 *
 * The function below can be async too; either use
 * async/await or return a Promise which resolves
 * with the Store instance.
 */

console.log("store")

export default store( (/* { ssrContext } */) => {
  console.log("instore")
  const pinia = createPinia()
  const piniaOrm = createORM()

  piniaOrm().use(createPiniaOrmAxios({
    axios: axiosInstance,
    function() {
      manager.getUser().then(user => {
        console.log('user', user)
        if (user) {
          return {
            headers: {
              Authorization: `Bearer ${user?.access_token}`,
            }
          }
        }
      })
    }
  }))
  pinia.use(piniaOrm)

  return pinia
})

user never gets logged.
With all this, the Authorization: Bearer <token> never gets sent.
I have already tried async and await, same result.
I also have, in the SFC
const postRepo = useRepo(Post)
const commentRepo = useRepo(Comment)
const axiosPost = useAxiosRepo(Post)
const axiosComment = useAxiosRepo(Comment)
axiosPost.setAxios(axiosInstance)
axiosComment.setAxios(axiosInstance)

Nothing. No header gets sent.
Additional context
How do I debug this?
Logs
request

POST /api/v1/post/ HTTP/1.1
Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: en-US,en;q=0.9,de-DE;q=0.8,de;q=0.7,hr-HR;q=0.6,hr;q=0.5,bs;q=0.4,sr;q=0.3
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 23
Content-Type: application/json
DNT: 1
Host: localhost:8080
Origin: http://localhost:9000
Pragma: no-cache
Referer: http://localhost:9000/
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-site
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
sec-ch-ua: "Not/A)Brand";v="8", "Chromium";v="126"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Linux"

I have also tried
import { store } from 'quasar/wrappers'
import { createPinia } from 'pinia'
import { createORM } from 'pinia-orm'
import {createPiniaOrmAxios} from "@pinia-orm/axios";
import {manager} from "boot/oidc.js";
import {axiosInstance} from "boot/axios.js";

/*
 * If not building with SSR mode, you can
 * directly export the Store instantiation;
 *
 * The function below can be async too; either use
 * async/await or return a Promise which resolves
 * with the Store instance.
 */

console.log("store")

async function getAuthHeader() {
  const user = await manager.getUser()
  console.log('user', user)
  return {
    Authorization: `Bearer ${user?.access_token}`
  }
}

export default store( async(/* { ssrContext } */) => {
  console.log("instore")
  const pinia = createPinia()
  const piniaOrm = createORM()

  piniaOrm().use(createPiniaOrmAxios({
    axios: axiosInstance,
    headers: await getAuthHeader()
  }))
  pinia.use(piniaOrm)

  // You can add Pinia plugins here
  // pinia.use(SomePiniaPlugin)

  return pinia
})

I'm guessing it's not really a Pinia ORM Axios bug, but me not knowing how to solve this.
It only works on HMR, but not otherwise.


feat: fox market data

Description
This adds supply and maxSupply fields into AssetMarketData (for all assets).
Asset Market data is integrated into FOX page.
Market cap and supply is fetched from market service for FOX
Those are fetched from investor-foxy for FOXy.
Notice

[X] Have you followed the guidelines in our Contributing guide?
[X] Have you checked to ensure there aren't other open Pull Requests for the same update/change?

Pull Request Type

[ ] :bug: Bug fix (Non-breaking Change: Fixes an issue)
[ ] :hammer_and_wrench: Chore (Non-breaking Change: Doc updates, pkg upgrades, typos, etc..)
[X] :nail_care: New Feature (Breaking/Non-breaking Change)

Issue (if applicable)
https://github.com/shapeshift/web/issues/1771

Risk
useLocaleFormatter.ts has been modified, I took care to not cause any regression and existing unit tests are passing, but the risk is that some fiat values are not displayed correctly.
AssetMarketData has been modified so It may be good to check there is no regression on other assets.

Testing
WIP

Screenshots (if applicable)
FOXy updates with latest develop

FOX

BTC

ETH

Moved this one to draft for now, confirming we cannot use market-service for the FOXy market data fetching, will reopen after that's cleared

@chxash When this is published, you can mergefix off latest develop and use new @shapeshiftoss/market-service
https://github.com/shapeshift/lib/pull/729/
Make sure to inject unchained URLs from getConfig() to honor the new ProviderUrls types

@gomes done rebasing and using market-service 4.6.0. FOXy market data is displayed as expected.


[Feature]: Research UX for showing error state on chart widget for invalid data/configuration

Is there an existing issue for this?

[X] I have searched the existing issues

Summary
It will be nice to have a UX that shows the errors on the chart widget when a user inputs invalid chart data or configuration.
Why should this be worked on?
This will help in catching the errors in the chart widget itself and avoid sending the sentry errors.
Also, it informs the the user about the error clearly and helps them take a corrective action at that moment. Overall it improves the user experience.

cc : @somangshu @dilippitchika , I have added an issue for UX research/design for showing errors on chart widget when there is chart data/configuration error in the property pane.


Update stable version in repo from 0.10.0 to 0.10.3

Think about update stable version to 0.10.3
Version: stable=0.10.0 (137 days old) => latest=0.10.3 (15 days old)
Installs: stable=633 (73.26%), latest=88 (10.19%), total=864
Click to edit

done.


Custom markup transformation

@jpuri PR #2
We added functionality to transform custom entities to HTML. As you may recall one of the PRs we created for the editor allowed us to embed tweets, instagram posts, etc.
This is the counter part that allows the transformation of these entities into HTML.
This change is backwards compatible and will not break earlier versions of the package.
Also this PR will take care of PR #1 as you can define your own transformation for link entity.

Just released<EMAIL_ADDRESS>merging the PR. I have renamed the parameter to customEntityTransform as it was too long.
Thanks a lot 👍


hydra:0.5.1

I am submitting

[ ] a new package
[x] an update for a package

Description: Only bug fixes.

Thanks :)


Puppeteer tests for Odyssey

Tests to write for a test suite:

[ ] Test everything in Ben’s presentation

[ ] Reach out to Ben

What features are expected? Everything should appear
Possible variation in accuracy
How do we see if an expression works?
Check if points look like what we expect
What’s the definition here?
Use a good proxy:
Accuracy roughly the same
Speedup roughly the same
Loose test: using image processing language model to verify if previous image VS current image are similar in nature

[ ] Get a utility function for generic test (test harness with accuracy and speedup metrics)

Test arbitrary functions
Maybe set up a config file for arbitrary functions

[ ] Concrete values testing

[ ] Hover over local error to get stats on this stuff

[ ] Stress testing

Send in a bunch of requests

Meeting with Ben on Friday to discuss this.
Otherwise, have basic tests working with component fetching for accuracy and speedup, and currently working on refactoring it into a more generalizable test suite.

Met with Ben, I have expressions, next step is to get specific demo workflows from Ben (probably will contain local error, accuracy, speedup, and improve button) and write specific tests for this - have a set of tests for basic expressions ready.

A specific demo workflow including Herbie improve button functionality is ready.
Also, merged main into automated-testing branch, and automated-testing back into main.

Next is testing for concrete values, and testing for hover values.
Puppeteer doesn't seem to have great support for the clickable circles in the errorplot, currently trying to figure out how to get it to click those properly.

Test suite is wrapped up and documentation is done


Help with transform spec

Hi, thx for the great work. I'm struggling to define a spec to transform the first element (labels) of an array in an object.
from:
{   "metadata": [     {       "label": "Amount",       "labels": [         {           "en": "Amount",           "ptBR": "Quantidade"         }       ]     },      {       "label": "Value",       "labels": [         {           "en": "Value",           "ptBR": "Valor"         }       ]     }   ] }
into
{   "metadata": [     {       "label": "Amount",       "labels": {         "en": "Amount",         "ptBR": "Quantidade"       }     },     {       "label": "Value",       "labels": {         "en": "Value",         "ptBR": "Valor"       }     }   ] }
Can someone please guide me on how to achieve this? Thx!

I think
  {
    "operation":"shift",
    "spec": {
      "labels": "labels[0]"
    },
    "over": "metadata",
    "inplace": true
  }
]

ought to do the trick. The over feature is underdocumented. Let me know if that does the job for you.

I tested the above solution and it seems to work:
See example (in.json is your example input, out.json is your example output, spec.json is the spec I defined above):
➜  tmp git:(master) ✗ cat in.json | kazaam -spec spec.json | jq -cMS . > kazaam.out.json
➜  tmp git:(master) ✗ cat out.json | jq -cMS . > sorted.out.json
➜  tmp git:(master) ✗ diff -s kazaam.out.json sorted.out.json
Files kazaam.out.json and sorted.out.json are identical

Works like a charm @ryanleary! Thx mate.

Great! Happy to help!
As an aside, I'd love to hear how you're using kazaam and anything that might make it more useful to you. Thanks.

I'm using it for the exact same purpose you created it. I have some JSON files created by a Progress 4GL application (witch has very poor JSON support) and I'm transform those files to send to an API. Kazaam is helping a lot.
Well, I have another question: Can I use over within a child array? Like in the JSON below to transform the labels key inside every items.metadata:
{   "items": [     {       "metadata": [         {           "label": "Amount",           "labels": [             {               "en": "Amount",               "ptBR": "Quantidade"             }           ]         },          {           "label": "Value",           "labels": [             {               "en": "Value",               "ptBR": "Valor"             }           ]         }       ]     },     {       "metadata": [         {           "label": "Amount",           "labels": [             {               "en": "Amount",               "ptBR": "Quantidade"             }           ]         },          {           "label": "Value",           "labels": [             {               "en": "Value",               "ptBR": "Valor"             }           ]         }       ]     }   ]   }
Thanks!

I did it with the spec:
[
    {
        "operation": "shift",
        "spec": {
            "metadata[*].labels": "metadata[0].labels[0]"
        },
        "over": "items",
        "inplace": true
    }
]

Not sure if my spec is exactly right because all elements inside metadata where transformed, not only the 0 index. But it works!

Forget my last comment! For every element in item.metadata, kazaam replaced labels with its labels[0]. As it should be.


Update translations

This pull request was created automatically. Please check new translations, approve and deliver them.

We will merge these PRs even with the missing translations, can still be used for investigation purposes.


CFE treats initializer lists as constant contexts

The program below is rejected by the analyzer as having an invalid constant (the invocation of Bar), but is accepted by the VM running bleeding edge, and in versions that I have tested going back to 2.1 (which suggests that this is not a new issue with the CFE constant evaluation).  Adding an explicit const to the invocation of Bar in the initializer list causes both implementations to accept the program.
My read of the spec in section 16.3.1 is that initializer lists are not covered as constant contexts, since elsewhere in the spec initializer lists and initializing expressions are treated separately.
class Bar {
  const Bar();
}
class Foo {
  final Bar a;
  const Foo(int x) : a = Bar();
}

void main() {
  print(const Foo(1).a);
}

Assigning to area-language first for verification that the letter of the spec matches its intent here.

cc @lrhn @eernstg @munificent

The intent is that a const is required here. The initializer list must contain potentially constant expressions, which for object creation means that it must be a constant invocation. It should not be a constant context, so the the const is required.
I believe the specification is correct. The "constant contexts" section does not mention initializer list entries, and they are only required to be potentially constant expressions.

I believe the short reason would be that we cannot make an initializer list a constant context, because that would violate a property that we otherwise maintain: An expression which occurs in a constant context must be a constant expression (that's very easy to verify inductively by looking at the specification of constant contexts).
So if we want to get those const modifiers for free in an initializer list then we need to consider how to handle a non-constant expression in a constant context, and I suspect that this will be a subtle exercise. ;-)

We could have introduce "potentially constant contexts" where we also automatically insert const for object creations, but we chose not to. By requiring const to be explicit, we leave the syntax open to perhaps some day allow new invocations to create new objects and const invocations to create const objects (the "auto" constness feature).

A test for the various constant contexts (covering the known incorrect ones) is here: https://dart-review.googlesource.com/c/sdk/+/98854


Convert all dates to to local time

LED creates an additional field called event_time_local in comparison to event_time which is in UTC. I would like to force all timestamp values to be local.
this
Time.parse(body['created_at']).utc.strftime(TIME_FORMAT).to_s
becomes
Time.parse(body['created_at']).utc.localtime.strftime(TIME_FORMAT).to_s
This would be similar to how I'm converting all timestamps to local timezone for our Canvas Data using Embulk. This saves on converting timestamps in SQL queries.
Since this affects all current users, I'm opening this up for discussion.

moving toward this slowly. https://github.com/ccsd/ledbelly/commit/df41000c02a479b964196ca59e2325bbb948dbb9
Will probably set the default as UTC and allow config option to set local.


implementing new plotting formats, including standard deviation

Will be followed by a notebook for analysis of one station each. Automation should ensure that this works for each of the regarded stations. Closing #2.

Can you try logarithmic color scale for GW and PW activity?
from matplotlib import colors

levs = np.logspace(0, 3.0, num=21)
da.plot.contourf(x = 'lag', levels = levs, norm=colors.LogNorm(), extend = 'both')

Logarithmic color scale was applied for GW and PW activity climatologies. (see last commit)
For anomalies it was not possible because of negative values.

Can you set the same lag extent for all variables? I think [-40,40] may be sufficient.

Syntax for running papermill:
papermill input_notebook.ipynb output_notebook.ipynb -p parameter_name parameter_value
Example code:
papermill analysis_per_station.ipynb analysis_Esrange.ipynb -p station 'Esrange'


List branches from only one repository if a repository name is given

Fix #1184
I'm not sure whether this change should increase the rpc version number or not...

Thanks!


Try CI with cached images

Checklist

[ ] make test-all (UNIX) passes. CI will also test this
[ ] unit and/or integration tests are included (if applicable)
[ ] documentation is changed or added (if applicable)

Description of change

Seeing intermittent (increasingly more persistent) issues with apache on new alpine linux, updates images on dockerhub and md5 cache files to see if leveraging cached copies helps.

fixed by #937


Create and manage groups in shinyproxy (LDAP authentication)

Hi,
I configured shinyproxy with LDAP authentication on a server using docker-compose. It turns out that the sector that manages the ldap service is not the same as mine. Therefore, only this other sector can create and manage groups in LDAP. That way, they are not allowed to create groups for me because they believe this must be in the application.
Is it possible to create and manage groups in shinyproxy itself using LDAP just to authenticate? I would like to create a group called 'admins' to include my user as an administrator of the apps. However, I don't know where to start. I evaluated whether I would have to fiddle with the navbar.html or index.html file, but I'm not sure what exactly I have to do to create this group.
Could anybody help me? Unfortunately, people in the other sector are not allowed to create and manage LDAP groups in my case. So I need to use LDAP only to authenticate and I must create the groups in the application itself.
Thank you.

Hi
With ShinyProxy it's currently not possible to create groups on top of LDAP authentication. However, since ShinyProxy 2.6.0 it's possible to specify a list of users that are allowed to access an app. In essence, I think this is what you need. Your users authenticate via LDAP and you can specify for each app which users can access it.
See https://shinyproxy.io/documentation/configuration/#access-users

Hi, @LEDfan. I’m using the access-users functionality to do so. Thanks for your help.

Great! Thanks for reporting back. Since then I believe your issue is solved, I'm going to close this issue.


Allocate less while constructing cranelift-fuzzgen tests

These are some steps I was taking toward a bigger refactoring of cranelift-fuzzgen, but this is as far as I got finished before other things came up. I think these are still improvements even without the bigger changes I wanted to make, so I'd like to get them merged.
I believe this PR should not change the input format for cranelift-fuzzgen or cranelift-icache and so should be fine to merge at any time.
cc: @afonso360
edit: I believe this will have merge conflicts with #4824. I'd probably prefer to merge that first and then fix this up rather than the other way around.

After resolving merge conflicts I got another 200k runs of this target in locally while waiting for CI to finish, so this seems solid.