"You're deploying it wrong!" with  Multi-Factor Authentication at Azure Tenant

First of all thank you for the tool it's been awesome and I was following up the "You're deploying it wrong!" blog post but I'm hitting a bit of death end because of our security policies enforces the multi factor authentication that is the security best practices at the moment..
When using the Tabular Editor during the deployment F6 (when it connects to the Azure Analysis Services server) I just click my Windows User that is recognized and it's all done.
Since only use the integrated security so the -Login with user pass don't work either.
I've tried a lot of combinations of the given examples and I get either one of the errors below:
"Error loading model: Authentication failed: User ID and Password are required when user interface is not available."
"Unable to obtain authentication token using the credentials provided. If your Active Directory tenant administrator has configured Multi-Factor Authentication or if your account is a Microsoft Account, please remove the user name and password from the connection string, and then retry. You should then be prompted to enter your credentials."
I'm not sure if running some kind of command line with the application open if it would open the prompt to select the user details for the integrated security.
Thank you for the attention before hand.

The whole point of deploying through the command line, is that you don't need any user interaction - meaning the process can be completely automated and run in a scheduled manner, for example as part of an Azure DevOps pipeline. Thus, two-factor authentication is out of the question for this type of deployment. For this reason AAS (and other Azure services) allow us to set up Service Principals, which can be used by other applications and services - including Tabular Editor.
First, create the Service Principal and assign it as an admin in AAS: https://docs.microsoft.com/en-us/azure/analysis-services/analysis-services-addservprinc-admins
Then, use the following connection string when running Tabular Editor from the command line, to impersonate the service principal:
Provider=MSOLAP;Data Source=asazure://<REGION>.asazure.windows.net/<INSTANCE>;User ID=app:<APPLICATION ID>@<TENANT ID>;Password=<APPLICATION KEY>;Persist Security Info=True;Impersonation Level=Impersonate

where

 and  are specific to your instance of Azure Analysis Services
 is the Application ID of your Service Principal
 is your Azure Active Directory ID
 is the secret key of your Service Principal

If using Azure DevOps, you can store the entire connection string as a secure variable, so that you don't expose the secret key anywhere.
I was planning to provide these details in a follow-up blog post, but I just didn't have the time to finish it yet.
Let me know if you need any additional information to move forward.

Thank you that did the trick.
Since we have the processing automated for the databases on a schedule the application and service principles were already created.
Currently I'm trying to get it to work on my machine before setting up the DevOps.
We're using the Folder structure as source (the source control seems cleared for the changes) and during the artifacts build I'll override the entire data source json to accommodate the correct environment (We have the same models across multiple Azure Analysis Services that have their own database).
The final command was the following:
start /wait TabularEditor.exe "" -D "Provider=MSOLAP;Data Source=asazure://.asazure.windows.net/;User ID=app:@;Password=;Persist Security Info=True;Impersonation Level=Impersonate" "" -O -C -P -V -W
Again thank you for the help ;) !

Glad to be of help, and thanks for posting the full command, so that others can see how it's done :-)

The whole point of deploying through the command line, is that you don't need any user interaction - meaning the process can be completely automated and run in a scheduled manner, for example as part of an Azure DevOps pipeline. Thus, two-factor authentication is out of the question for this type of deployment. For this reason AAS (and other Azure services) allow us to set up Service Principals, which can be used by other applications and services - including Tabular Editor.
First, create the Service Principal and assign it as an admin in AAS: https://docs.microsoft.com/en-us/azure/analysis-services/analysis-services-addservprinc-admins
Then, use the following connection string when running Tabular Editor from the command line, to impersonate the service principal:
Provider=MSOLAP;Data Source=asazure://<REGION>.asazure.windows.net/<INSTANCE>;User ID=app:<APPLICATION ID>@<TENANT ID>;Password=<APPLICATION KEY>;Persist Security Info=True;Impersonation Level=Impersonate

where

and  are specific to your instance of Azure Analysis Services
is the Application ID of your Service Principal
is your Azure Active Directory ID
is the secret key of your Service Principal

If using Azure DevOps, you can store the entire connection string as a secure variable, so that you don't expose the secret key anywhere.
I was planning to provide these details in a follow-up blog post, but I just didn't have the time to finish it yet.
Let me know if you need any additional information to move forward.

Hi @otykier, How can I execute the following command using PowerShell?
Provider=MSOLAP;Data Source=asazure://.asazure.windows.net/;User ID=app:@;Password=;Persist Security Info=True;Impersonation Level=Impersonate

Hi @Ashish-Jovial
What is the command you wish to execute? Is this question related to Tabular Editor?

Is there any other way for authenticating the Service Principal other than the secret key?

To my knowledge no. The AMO/TOM lib requires the SP secret to be specified as the password part of the connection string, but the article illustrates that you can pass the secret to Tabular Editor as an environment variable from a pipeline variable. The pipeline variable could be populated from a Key Vault through a Service Connection in DevOps. This way, the secret is not disclosed or logged anywhere.

@otykier Thanks so much for everything you do, love Tabular Editor!  Curious, does the thread above also apply to Power BI via XMLA?  Will it also work?  And do you already have documentation on that (using TabularEditor.exe with MFA or service principal)?

Hi @chrisweis - yes, you can use service principals to connect to Power BI through the XMLA endpoint as well: https://powerbi.microsoft.com/en-us/blog/announcing-support-for-service-principals-using-the-xmla-endpoint-in-power-bi-premium/

@otykier,
I have weird behaviour with the connection.
I am iterating through workspaces and datasets and after about 20 times opening and closing the connection I start getting the error:
Microsoft OLE DB Provider for Analysis Services.', "Errors in the OLE DB provider. Unable to obtain authentication token using the credentials provided
The connection string is okay as it works after I try to connect manually.


When on the same hard drive, the move action seems to be actually copying the file instead of renaming it to the new directory

I'm trying the new version 2.0.3.
This is part of my config:
mobile_upload_folders: &mobile_upload
  - ~/OneDrive/Pictures/Camera Roll/
  - ~/OneDrive/Pictures/Download/

rules:
  - locations:
      - *mobile_upload
    subfolders: true
    filters:
      - name:
          startswith:
            - Screenshot_
            - Temp_File_For_Share
          case_sensitive: false
      - lastmodified:
          years: 1
          mode: newer
    actions:
      - rename: "~/OneDrive/New_Screenshots/{lastmodified.strftime('%Y/%m')}/"

I noticed that .MP4 files were taking too long to be moved.
I assume that, in version 1.x, these files were being renamed to the new directory.
Now they seem to be actually copied and created in the new location, even if it's on the same hard drive.
I also noticed that the creation date and modification date of the files is the current time, and not the original file time.
I tried using the rename action, but I get this error message:

(rename) ERROR! The new name cannot contain slashes. To move files or folders use move.

Thank you for the report, this is a strange one. But I think I got it.
Could you please try it again with the current development version?
pip3 install git+https://github.com/tfeldmann/organize.git

rename is used if the folder should not change, so in your case you have to use move.

Could you please try it again with the current development version?

I tried with multiple files and it works perfectly, it's super fast now! 🙏🏻

Great to hear! v2.0.6 is released and includes this fix 👍


Is OrbitDB "live"?

When using the browser daemon and the ipfs dev signalling server, is the connection "live" to ipfs? I am not getting a "data" event from my databases, but when I change it to "write" the event gets thrown. This leads me to believe the data doesn't get written to ipfs. I also tried using a local ipfs node and setting the Addresses property in ipfs options and I still don't get the "data" event firing. Am I misunderstanding something?

Hi @rkyleg, I believe the event you need to listen to is 'synced'. 'write' event is when database is updated locally. I noticed that the API documentation wasn't updated to reflect the recent change so I updated it to describe what to expect: https://github.com/orbitdb/orbit-db/blob/master/API.md#events.
As for local data, note that there's a now an explicit load() method that needs to be called if you wish to load the persisted local state of the database.
Let me know if this solves your problem.

@haadcode yes, that is greatly helpful! The events are firing as expected now, and I am able to load history with the load() method. Thank you!


No build for FreeBSD amd64 available

😞

will provide one @kdambekalns In the next days  :) :)

Fixed in Version 1.1.0 - see https://github.com/sandstorm/synco/commit/e00233d35c552ea8ed395ef4c4498c443054116a and https://github.com/sandstorm/synco/commit/3f98a4112c0e1220f05cefede456208fb3477995


Incorrect shardReader parameter configuration may cause read stuck

PR Description
Type of change

[x] Bug fix

Checklist

I have run format.sh under script
I have commented my code, particularly in hard-to-understand areas
New and existing unit tests pass locally with my changes

Two fixes are available:

when reader read empty records, set timeout to unlimited, and change max-read-records to 1, so that when reader read any new records next time, we have a chance to resume all the configs (the current implementation)
always set timeout to unlimited and max-read-records to 1.

Personally, I'd prefer option one. I think the biggest problem with option 2 is that only one record is returned to the client at a time. Compared to option one, this may result in additional resource waste in two ways:

Network bandwidth waste: bandwidth consumption of the message header field
The client can only process one message at a time instead of a batch of messages, resulting in additional overhead from frequent lock acquisition and release


Incorrect markdown formatting when viewing marketplace inside VSCode

Issue Type
Bug
Description
When viewing the Bracket Pair Colonizer extension in marketplace inside VSCode, a line is formatted incorrectly (too large). It looks fine on the actual website though.
VS Code Info
VS Code version: Code 1.20.1 (f88bbf9137d24d36d968ea6b2911786bfe103002, 2018-02-13T15:34:36.336Z)
OS version: Windows_NT x64 10.0.16299

Reproduces without extensions: Yes

Here's what it looks like now:

@CoenraadS Did you change something in the release note to fix this?


fix(circleci-plugin): pipeline collector time range

Summary

Fixes bug whereby CircleCI pipeline collector would continue to collect data and not consider the timeAfter config of the DevLake pipeline
Handle case where circleci workflow or job has been deleted

Does this close any open issues?
Closes #7797
Screenshots
Before:
Running DevLake pipeline with time range set to 2024-06-01 would pull in results from Feb (ie back 180 days until hitting circleci's data retention policy for my org):

After:
Only results from 2024-06-01 onwards are considered:

Other Information
May have uncovered another bug in the CircleCI plugin whereby existing data is overwritten by a subsequent collection, see this comment Confirmed as intended behaviour for a full sync plugin

Hey @klesh, is there an ETA on when this PR might be reviewed/merged?

@Nickcw6 Thanks for your contribution.
Will release a new beta on Friday.


IRGen/runtime: change the code generation for dynamically replaceable functions

Instead of a thunk insert the dispatch into the original function.
If the original function should be executed the prolog just jumps to the "real" code in the function. Otherwise the replacement function is called.
There is one little complication here: when the replacement function calls the original function, the original function should not dispatch to the replacement again.
To pass this information, we use a flag in thread local storage.
The setting and reading of the flag is done in two new runtime functions.
rdar://problem/51043781

@swift-ci test


Add cross/checkmark on hover on label selection list

https://github.com/sindresorhus/refined-github/pull/1532#issuecomment-442720932

Would be nice if it showed a faded out X when you hold Option/Alt in while hovering an item, to make it clear it will invert it.
Something like this:

For consistency, we could maybe also show the checkmark faded when hovering without Option/Alt being held down.

Feature implemented by GitHub https://github.com/sindresorhus/refined-github/pull/1532#issuecomment-469777441


📎 Binary bridge format

JSON is pretty slow for big trees. We should be able to get a significant efficiency increase by switching to SharedArrayBuffer for communication between workers and the server. We could also collapse object structure, and support transporting non-JSON values over the bridge such as file paths.

Closing as it's been implemented


Create new session bug

Traceback (most recent call last):
File "/root/1/opentele/1.py", line 20, in
asyncio.run(main())
File "/usr/lib/python3.10/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
return future.result()
File "/root/1/opentele/1.py", line 15, in main
tdesk = await client.ToTDesktop(flag=CreateNewSession)
NameError: name 'CreateNewSession' is not defined

from opentele.api import CreateNewSession


size 0x2a5 fully unreadable

Hi,
Got this error in my debug.log, on windows-x64 :
[1215/084332:ERROR:process_info.cc(608)] range at 0xfeb5350c00000000, size 0x2a5 fully unreadable [1215/084332:ERROR:process_info.cc(608)] range at 0xfeb5352c00000000, size 0x2a5 fully unreadable [1215/084332:ERROR:process_info.cc(608)] range at 0x0, size 0x2a5 fully unreadable [1215/084332:WARNING:in_range_cast.h(38)] value<PHONE_NUMBER>230 out of range [1215/084332:WARNING:in_range_cast.h(38)] value<PHONE_NUMBER>814 out of range [1215/084332:WARNING:in_range_cast.h(38)] value<PHONE_NUMBER>154 out of range [1215/084332:WARNING:in_range_cast.h(38)] value<PHONE_NUMBER>278 out of range [1215/084332:WARNING:in_range_cast.h(38)] value<PHONE_NUMBER>484 out of range
Version : 0.5.4b
If you need more info, just ask. Hope it helps.

Did this cause any unwanted behaviour in Web2Exe, or is it just something you noticed?

Just noticed... I just report :)

Alright. This is likely just an issue with an underlying C library. If it's not causing any issues it's not a bug with Web2Exe. But thank you for filing the issue :)


Improve dependency version requirements

This library current specifies the minor version for validation and garde but  since those libraries are both pre 1.0 this will require this library to update when they update.
See https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#tilde-requirements

I tested with garde and the tilde version requirements still caused issues. I probably need to do some more research on the best practices for this.

Appears to be best practice to keep a 0.x until dependency crates hit a 1.x.
https://rust-lang.github.io/api-guidelines/necessities.html
Not sure if we will need to wait for all dependencies, but we should probably wait for at least validator and garde


Voicefixer not using CUDA

I created a venv and ran pip install voicefixer==0.1.2
On running voicefixer, only the CPU is used. The GPU is not utilized.
I did not use the --disable-cuda argument.

I managed to resolve this by manually installing Pytorch Nightly using:
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu117 -U
Maybe something went wrong with the torch versions that caused torch.cuda.is_available() to report false on base install?


Admin UI does not show message for deleted objects

Describe the bug
If you delete an object via the interface, there is no message to indicate if objects were deleted.

To Reproduce

Login to Admin interface
Import books.csv (tests/core/exports/)
Import books-for-delete.csv
You will not see any message for delete

Versions (please complete the following information):

Django Import Export: 3.3.1
Python 3.11
Django 4.2

Expected behavior
A message indicating that delete was successful

I'd like to attempt to assist with this, I have some Django related exp, as depicted in my repos. I am new to open source, and this seems like a simple issue. Maybe a missing line in a delete method. Is there any other information you can provide, that might help me locate this faster? @matthewhegarty

Hi Rob
Thanks for the offer of help, much appreciated.

First check out the contributing guidelines in the docs
Next, get the example app running and reproduce the issue as above.
You'll likely need to modify this method to check for deletes and to write an appropriate method
Add tests (this is an example you can copy and adapt)
Test manually and make sure it is working
Run the test suite with make test
Once you have a working version, create a PR and push to your fork (loads of tutorials online for this if you are new to it).

Let me know if you get stuck or need a hand.
Matt

@matthewhegarty
good evening, Matt, just a little update.
I have reproduced the bug.
and I believe I have tracked the issue back from line 248 add_success_message()
through precess_result()
Here we have Two methods that return process_result()
import_action() and process_import().
In process_import() I found the form validation for imports.
in admin.py line 159 there is an if confirm_form.is_valid():
and below on line 166 there is a tmp_storage variable.
in this variable we find name=confirm_form.clean_data['import_file_name']
Throughout the rest of this I couldn't find a place where the name of the file was being used. But I see that the name of the csv file is directly related to deleting the books, unless I am mistaken. But we delete the temp file and do not return anything that would tell us it was -for-delete.
searching the files the only place for-delete comes up is in a test case, in test_admin_intergration.py.
My thoughts are we have to pass a bool down to add_success_message(), something along the lines of is_for_deletion.
the message that is returned by add_success_message() can be determined with an if statement.
Hopefully this isn't to much information, but I like to be clear.
Is there a way you decide to delete through import that I missed in the files?

Hi Rob
You are on the right lines, but hopefully the solution to this is fairly straightforward.
Firstly, there is no default logic for deleting items.  The user has to implement that for themselves.  In the example app, that is already implemented here.
The check for deleting objects is performed here.
However, all you will need to do is to modify the add_success_message() method.  Note that this is passed a Result object (which is defined here).  The Result object contains N RowResult instances, each one of which (if valid) is 'new', 'update', 'delete' or 'skip'.  You can see how this is implemented in add_success_message().
So all you will have to do is to read the number of deleted rows in the Result object (i.e. how many RowResults are delete), and add that to the message.  Ideally you could add helper methods to Result to report on the number of objects (e.g. num_delete(), num_new(), num_update(), num_skip()).
To do this properly, we should also report on the number of skipped rows.  This will also change the message to users, therefore I propose to make this change in the forthcoming v4 release.  This means you will have to take a branch from release-4 and makes the changes there.
Hopefully this all makes sense, happy to clarify further if required.

@matthewhegarty
Good evening Matt, Update:

Is there a specific way you would like this to read?

Looks great.  I would suggest keep it simple:
Import finished: 1 new, 0 updated, 0 deleted and 0 skipped books.

What do you think?

Alright, I have the Test, test_import_for_deletion, done, name added to Authors.txt, and aligned the message with your suggestion.
pushed to the Fork, and as soon as I make sure I haven't missed anything, and determine if I need to right a patch, or is that a term for an update, I believe its done.
The Fork should be on my page if you needed to look over it, And Id appreciate it if you did. This is my first attempt ever at working on code that wasn't mine. I have no other experience, and I am a little apprehensive to say it's complete.
Have a good night.

Sounds great, thanks so much for taking the time to do this, much appreciated.  What you should do now is to submit a Pull Request.  If you have pushed to a branch in your fork, then you should see a prompt for this when you go to this page.
Once you create the PR, the automated tests will run.
When you have submitted the PR, I will be able to review, and add any comments and request any changes if necessary.  It's very common for the maintainers to request changes, but sometimes it's not necessary.
This all happens in your branch, and when the change is approved, it will be merged into the main codebase, and you will have submitted your very first PR.

I am working on fixing all the test I broke with the changes. a lot of:
str_in_response="Import finished, with 1 new and 0 updated books."
That I wasnt aware of. Should be a simple fix of just changing the line over to what is expected.
After that I'll complete the Pull Request.
atm 20 failures, 7 skipped.


Remove + Move Old Deployments

Changes to cleanup and enhance this repository (and maybe some others!)

[x] BroncoDeployment-back is an old deployment built for linux, and should be deleted.
[x] OreDeployment could go in proveskit/fprime-octavo as a deployment meant to feature hub pattern communication between BroncoDeployment and OreDeployment.
[x] PROVESDeployment is a fresh fprime-arduino deployment and is nothing special, should be removed.
[x] UartPROVES is a fresh linux deployment fresh with uart connections, but should be deleted since it cannot run on the RP2040.
[x] fprime-venv-back is old and should be removed.

Marking resolved for now. OreDeployment exists in 4bc05b9, and could transfer it later.


Task description

It would be very handy if ntl provided a way to display a description about the available tasks. I believe it would be failry straightforward to implement this.
If you think it's a good idea I can give it a shot.

hey @rafaelrinaldi thanks for stopping by!
by task descriptions do you mean like we discussed in #4 ?

That looks like it! I offer myself to tackle it if there is interest.

oh yeah 🎉 sure thing! that'd be awesome!
in the end of that discussion I think the bash comment idea was the best way to go about it we could come up with, do you agree?
anyways, any help is super appreciated!
many thanks!

@rafaelrinaldi heads up, major refactor just landed on master 😊


Switch to using calculate_crossing_times as a standalone function

Pull request
Please confirm that this pull request has done the following:

[x] Tests added
[x] Documentation added (where applicable)
[x] Example added (either to an existing notebook or as a new notebook, where applicable)
[x] Description in CHANGELOG.rst added

Adding to CHANGELOG.rst
Please add a single line in the changelog notes similar to one of the following:
- (`#XX <https://github.com/openscm/scmdata/pull/XX>`_) Added feature which does something
- (`#XX <https://github.com/openscm/scmdata/pull/XX>`_) Fixed bug identified in (`#YY <https://github.com/openscm/scmdata/issues/YY>`_)

We can ignore codecov on this one


Convert split terminal into new tab

Using split terminal with many terminals on the screen at once can be bit messy.

So, it's would be great if we can toggle the split terminal into a new tab.

@mittalyashu you want to convert an already existing split terminal into a new tab? I think I'll merge this issue into https://github.com/Microsoft/vscode/issues/10546 as the layout of terminals should be more flexible then (plus it needs some ux work first).

@Tyriar, I didn't mean to convert a split terminal into new tab (like .eslintrc.js, though it is a good feature request). What I meant is that we can convert the split terminal into a separate instance, instead of joined.

@mittalyashu how instances are handled will be redesigned when #10546 is done so I'm deferring this request to that.

Oh! I see.


This package about io.netty.util.collection  not found....

Expected behavior
Actual behavior
Steps to reproduce
Minimal yet complete reproducer code (or URL to code)
Netty version
JVM version (e.g. java -version)
OS version (e.g. uname -a)

Run 'mvn clean compile' in the common module. It's generated during build

also please provide more details next time you report an issue. There are no details provided.


Write default admin RBAC role assignment for chatops_bot user

While reviewing and testing RBAC changes I noticed we don't write a default admin role assignment for the StackStorm user (chatops_bot) which is used for ChatOps which breaks stuff when RBAC is enabled since /aliasexecution is behind RBAC for.
For now, we simply write an admin role assignment, but eventually we will want to improve that:

When we add support for gloving ("") in resource_uid, we should update the definition to only grant "action_execute" on "pack:" and "action_alias_list/view" on "actionalias:*"
Once we start working on first-class citizen RBAC support for ChatOps, permissions will be inherited by the user which executed a ChatOps command.

Second step takes quite a lot of work (and we still need to figure out and decide on some things) so the incremental path is doing option 1 first, since globbing support will also come handy in other places, especially when we add support for RBAC on datastore items.

:+1:

I wanted to test it before merging it, but anyway, will test it now that it's merged :)

Just tested and verified this change works correctly.


Revert "ci/docs: Add mdbook-linkcheck"

This reverts commit 4f2a30ccbf9dbef9f3da043211f0d2058b207ba4. It broke the main docs site.
Closes: https://github.com/containers/bootc/issues/532

They're built on pushes to git main, yes.
BTW I tested this change by pushing to my fork and verified it works; anyone hacking on the docs should have this as a SOP.

They're built on pushes to git main, yes.
BTW I tested this change by pushing to my fork and verified it works; anyone hacking on the docs should have this as a SOP.

I see what happened here.  Previously, the html would land directly into docs/book, but since introducing linkcheck adds another backend, it goes into docs/book/html instead (and there's a docs/book/linkcheck where linkcheck does whatever it does).  I did test this locally, but I didn't notice that the directory changed so I just followed the extra html subdir without thinking much about it.
I just enabled the docs workflow on my fork, and tested this with the old PR and confirmed the deployed docs gives a 404, but if you append /html the docs are there correctly.  This is a one-line fix in the upload step to use the html subdir instead, which is now working correctly on my fork.  I'll put in an updated PR with the fixed version.


Qlik failing to connect to sse plugin

Description
Qlik sense server is failing to connect to the SSE server on the same machine.
Steps to Reproduce

Start RServe running on 6311 in RGUI on x machine
Run SSE-R plugin extension with default settings pointing to Rserve on x machine
Add analytic connection on x machine (running Qlik Server that points to SSE server using local connection and port 50051)
Restart Qlik engine

Expected behavior
[What you expected to happen]
I expected the Qlik server to successfully connect to the SSE-R server.
Actual behavior
[What actually happened]
Qlik fails to connect to the SSE server and produces an error within the trace log folder. The file is SSE_ENGINE and produces an error code 14 when trying to establish to the SSE server.
'New SSEPlugin added (secure connection). Name: R, address: <IP_ADDRESS>:50051	0'
then produces a warning:
'Failed for <IP_ADDRESS>:50051 error code : 14	0	Internal	Engine'
then produces another warning:
'Failed to initialize gRPC communication for SSEPlugin R	0	Internal'
Environment
Operating system where the SSE plugin is deployed
[ ] Windows Server 2016 Datacenter 64-bit(10.0, Build 14393)
##### Qlik Sense Feburuary 2018 Patch 1 - 12.5.3

[ ] Server
### Versions

* sse-r-plugin:
* Qlik Sense: 1.2.1-qlik-oss

### Note
I have all the ports opened for 50051, 6311 and all the ports that the Qlik server uses within the firewall. Yet the Qlik server is still failing to establish a connection to the SSE server.

Hi tobiaslindulf,
Thank you for the quick reply! I actually have three analytic connections that both point to the sse server (the sse server was insecurely connected to the R serve at the time of writing) with my settings.ini completely empty this whole time.
The whole log actually produces this for all 3 of my analytic connections:

New SSEPlugin added (non-secure connection). Name: test
Failed for localhost:50051 error code : 14	0
Failed to initialize gRPC communication for SSEPlugin test	0
2.New SSEPlugin added (non-secure connection). Name: test2
Failed for <IP_ADDRESS>:50051 error code : 14	0	Internal
Failed to initialize gRPC communication for SSEPlugin test2	0

New SSEPlugin added (secure connection). Name: R, address: <IP_ADDRESS>:50051	0
Failed for <IP_ADDRESS>:50051 error code : 14	0	Internal	Engine
Failed to initialize gRPC communication for SSEPlugin R	0	Internal	Engine

All three analytic connections are failing.
Thank you for the help!
Kind Regards,
Phealey Hang

Does anyone also know whether 'error code 14' within the SSE engine log(found within the trace folder for qlik directory) is produced by the sse server or qlik server? I have been told that the SSE server generates this error when a connection has failed to establish and is then logged by the qlik engine. So does the SSE server relay this failure back to qlik and then logged into the sse engine log file as 'error code 14'?
Kind Regards,
Phealey Hang

Hi @phealeyh !
The error codes in the SSE log file are referring to the gRPC status codes (see here). Number 14 equals unavailable and is typically seen when the connection has failed, as you said, for instance when Qlik tries to get the capabilities from the SSE plugin and the plugin is not yet started.
Error messages in the logs can come both from within Qlik (as in the case above) but also from the plugin. In the Writing an SSE plugin using Python there is a short section about error handling from the plugin side. You can also look in the system engine log file to get more information about the specific event. For instance, in the event described above, you will have a log message saying "GetCapabilities: Failed for : error code : 14"
I hope this helped you, let me know if you have any further questions!
Kind regards,
Josefine

If I understand this correctly, GetCapabilities returns all of the functions that qlik can use for the R plugin? Can you suggest reasons why the connection is failing? I'm really stumped on what could be causing this problem.
Kind Regards,
Phealey Hang

Yes, that's correct. GetCapabilites also returns a boolean for enabling script evaluation as well as an identifier and version of the plugin (see the Capabilities section in the documentation).
I would say the most common mistake for a failing connection is that the configuration does not align with the settings in the plugin (or where the plugin is run).
The first thing you should do is to:

Make sure the plugin is running and check the output/logs from the plugin. Before you restart engine you should see that the plugin is listening to the same port as you used when configuring the plugin in the QMC/settings.ini.

Also, every plugin you configure should have its own unique port. I noticed all three plugins in your comment further up, are configured to use the same port 50051. With this configuration, only the first plugin connecting to the port will get the GetCapabilities call(given the configuration is correct). For simplicity, I would suggest you start with one plugin and make sure you get that to work before adding more.

Hi again @phealeyh !
I want to clarify the last part of my comment regarding plugins with a unique port. It should work fine to configure several plugins in Sense, pointing to the same SSE server (and hence the same port). However, configurations pointing to the same port must have the same setting regarding insecure/secure connections. I misunderstood you and thought you had multiple SSE servers which you pointed to the same port. I apologize for any potential confusion.
Kind regards,
Josefine

Hi @phealeyh , i am facing the same issue. Kindly let me know whether this issue has been resolved for you.
Regards,
Saiprasad

How would I resolve this "GetCapabilities: Failed for : error code : 14?  Is there another version of the sse-r-plugin-master?  I attempted to run the SSEtoServe in Visual Studion to compile it.  I am not running the plugin insecure in the QMC so no certificates.  Do you have any other suggestion in order to get this resolved?


Add best practices for phantom nodes

Based on Val's write up - https://docs.google.com/document/d/1AMulTFMqjNFIDegHz1turh4X2SIUVt20uW90ntESSN4/

I could work on this if that's fine @ConorOkus

This is actually almost complete and will be published soon.


Throw if maximum Noise message length is exceeded

As per the Noise spec, Revision 34, Section 3: "All Noise messages are less than or equal to 65535 bytes in length."

Nice catch, thank you. Major bumped just in case this breaks anything deployed atm, so this is released in v4.0.0


Resolve <>?

As of now, (I think the Rust plugin?) says "error: Chained comparison operator require parentheses" when using <>

Yeah, this is the next big area of improvement for the plugin. A few things need to happen to support this notation:

We need to be able to modify the injected Rust action code such that <> is replaced with some special variable (e.g. __intellij_lalrpop_selection) so the Rust plugin can parse the code. The hard part is performing this transformation without affecting the source PSI elements (what's shown in the lalrpop file). This will require some more research.
Parse the "alternative" grammar so we know what the input variables and types are. Examples: Item* is a Vec of Item's type, <Visibility> "fn" <Name> is a tuple of the visibility and name types, <var:Id> "=" <expr:Expression> has two named variables, etc. Currently, the last example is supported as long as Id and Expression explicitly declare their types, i.e. Id: String = ...

I tried my hand at solving the second part and realized that in cases like <Visibility> "fn" <Name>, <> is not really a tuple, but (<>) is. Small but important distinction here.

I might have just found a solution to this: the LiteralTextEscaper
// from PsiLanguageInjectionHost
  /**
   * @return {@link LiteralTextEscaper} instance which will be used to convert the content of this host element to the content of injected file
   */
  @NotNull
  LiteralTextEscaper<? extends PsiLanguageInjectionHost> createLiteralTextEscaper();

Ok turns out I was right: it is able to do what's needed to acheive that. Implemented it in https://github.com/dblanovschi/intellij-lalrpop/commit/745608f234e9bfa99d114738b879aa3401d4d3ef :tada: . Now on to evaluating what's "selected" from the list of symbols in the alternative.

I finally got it to find what's selected or not (after getting sidetracked on type resolution in lalrpop; so now the types in rust injections are way more accurate).

Fixed by #17 :tada:


Add limited Variant binding

I'm somewhat open to suggestions of alternative names for the VariantType/VariantTy pair.
There's some scarily unsafe stuff there. I might need to add more comments explaining why I think it's sound.

Thanks.

I'm somewhat open to suggestions of alternative names for the VariantType/VariantTy pair.

Seems fine for me.
Otherwise excellent work. I wait for the nit and let's merge this!

I renamed Variant::to_str to get_str as it's sort of a specialization of get. It's plausible that some other get variant may appear in the future.

Agreed. Anything else you want to change before I merge?

Removed a little code duplication. Added cargo test to appveyor. If it passes, yep, I'm good.


(maint) Fixes acceptance tests for centos7 and v3+

Also adds travis-ci jobs to run acceptance tests.

this change conflicts with https://github.com/puppetlabs/puppetlabs-rabbitmq/blob/master/.sync.yml#L4

You can add only the working ubuntu there (compare to https://github.com/puppetlabs/modulesync_configs/blob/master/config_defaults.yml#L5) to do this right.

@DavidS I still want to keep the centos7 tests in there, despite them failing, as they are only on the 2.8.1 tests, and we should know if anything breaks 3.0+


A wrong rendering of the margin property

It looks like a bug, isn't it? A confusing visual representation of margin-right property of the p which have margin-right equal to 0 (zero) . Compare with Firefox:
Chrome
Firefox
Chromium version 51.0.2704.79 Built on Ubuntu 14.04, running on elementary OS 0.3.2 (64-bit)

This issue tracker is for bugs in the Web Fundamentals website.
Chrome bugs should be filed at https://crbug.com/new


调整puppet-service中的日志级别

目前该项目中的日志级别极大部分都是verbose的，对于默认打印info级别日志的情况，排查某些问题会有不便。
如果将使用wechaty的默认日志等级调整为verbose会有很多冗余的puppet-service日志，影响日志的可读性。
因此需要将一些关键日志的等级做出调整。

An internal module should never print messages to users because it should be "just works", and only print an error message when there's anything not expected.
The PuppetService is an internal module, so it should not print any message by default.
log.info
Just image that, for the TCP/IP OSI layers, if every layer prints log message to you, then it will be totally a mess.

A better way to archive what you need, I believe is to add some events to the Brolog so that we can filter them.
For example:
log.on('verbose', (module, method, message) => {
  // filter module & method at here, and output whatever you want.
})

Should be able to be solved by https://github.com/huan/brolog/issues/145
Stay tuned.


Update _MSC_VER table with VS2022 RTW version.

@danieljennings : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#label:"aq-pr-triaged"

Thank you, @corob-msft . When I was looking for the value online I found it missing here and on the Wikipedia page that (apparently) lists all of the _MSC_VER options, so I figured I'd update both of them for future travelers.


Store size of package in the index

Should the fpm.toml file contain information about the size of the package?
The subroutines new_package and check, in  the module fpm_manifest_package, contain 18 keywords with information about a package, name, author, version, etc. However, no keyword provides information about the size of the package.
An idea,

Build the package
Update the file fpm.toml with information about the size of the package

The command execute_command_line can get this information from shell.

Indeed, the fpm-registry should automatically extract this information and make it available.


Disable like in ABAC DRT targets

Issue #, if available:
Description of changes:
Disallow like expressions from being generated by the ABAC DRT targets, pending a solution for #173.
This is in the "shared" code, so it will affect both the Dafny and Lean targets. Obviously we will need to revert this PR in the future, but it will be convenient for now to ignore this (known) failure so it doesn't mask other (unknown) failures. Note that like expressions can still be generated in PBT targets.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Issue is here: #185


routing using non-english characters!

Back in codeigniter version 1.7.2 i used to edit route.php in order to route non-english character URLs to the appropriate english character controller (for SEO purposes).
I have noticed that this was no longer available since version 2.0 of codeigniter. I am not sure if this is a bug or a feature.

Can you give an example of a route that used to work that doesn't any more?


Display scaling messes up mouse cursor in Gnome apps.

Describe the bug
When I use higher than 100% display scaling, the mouse cursor gets absurdly big and blurry within Gnome apps such as BoxBuddy or the konsole that Bazzite uses.
What did you expect to happen?
The mouse cursor to stay at the same size & clarity / resolution.
Output of rpm-ostree status
State: idle
Deployments:
ostree-image-signed:docker://ghcr.io/ublue-os/bazzite:stable
Digest: sha256:10ebb6e959a7574a56cd90451652eb3cc2ce6e406465661092875ea91d6318f3
Version: 41.20241104 (2024-11-04T05:00:08Z)
SecAdvisories: 2 moderate, 1 important
Diff: 228 upgraded, 2 removed
LayeredPackages: goverlay java-21-openjdk.x86_64
LocalPackages: lact-0.5.6-0.x86_64
● ostree-image-signed:docker://ghcr.io/ublue-os/bazzite:stable
Digest: sha256:5bb32b035ce0678ada4b86f4899c7e237887c02038e077934b214f27866de14a
Version: 41.20241030 (2024-10-31T01:20:26Z)
LayeredPackages: goverlay java-21-openjdk.x86_64
LocalPackages: lact-0.5.6-0.x86_64
ostree-image-signed:docker://ghcr.io/ublue-os/bazzite:stable
Digest: sha256:dd21242732e272339c1e5d9cee6441f95e819223e12d53cf1430a3db517d6bd6
Version: 41.20241029.1 (2024-10-29T15:39:27Z)
LayeredPackages: goverlay java-21-openjdk.x86_64
LocalPackages: lact-0.5.6-0.x86_64
Hardware
No response
Extra information or context
No response

Yeah, it seems KDE is now using SVG to render their cursors, but GTK didn't implement it yet so yeah.
https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/6212
A workaround would be using a cursor theme that uses the old X11 cursor format (like Bibata Modern Classic, per example).

Hm, that causes blurry cursors with the new wiggle zoom though. Not that it is important, I just kept it enabled because I find it mildly funny. :)
How long is the average timeframe of such releases landing on (Bazzite) stable when they get merged, assuming there aren't any major hiccups?


Connect with cert.pem key.pem ca.pem

With your library if possible connect server with SSL client Auth?
I send 3 file for authentication:
ca.pem, cert.pem, key.pm
thanks

ok, but how to insert the other 2 files
thanks

At this point I'm not exactly sure what you are trying to accomplish. SSL pinning should only use one certificate or public key. You can generally add the certificate or public key to your app bundle as the docs show.

I use this:
curl https://:3333$HOST/photo/json
--cert ~/user/cert.pem
--key ~/user/key.pem
--cacert ~/user/ca.pem
how to with Swift and your library?
thanks

I looked into the SSL Pinning some more. You need to use a DER encoded cert, that you can generally pull from your server with this command:
openssl s_client -connect myserver:443 </dev/null 2>/dev/null | openssl x509 -outform DER > myserver.cer

You can then use put the myserver.cer into your app bundle, follow the docs to enable the SSL Pinning and that is usually all that is required. I'm not sure why the client would need the cert, key and cacert to do SSL Pinning and not sure I can offer any guidance there.


Pipe mode recovery does not work

We can get recovery message when xpanes works with pipe on the out side of tmux session.
This is expected behavior, but ...
$ seq 3 | ./xpanes
xpanes:Warning: Attached session is required for 'Pipe mode'.
open terminal failed: not a terminal
xpanes:Recovery: Execute below command line to re-attach the new session.

tmux -S /home/docker/.cache/xpanes/socket.5840 attach-session -t xpanes-5840

tmux -S /home/docker/.cache/xpanes/socket.5840 attach-session -t xpanes-5840 does not work because /home/docker/.cache/xpanes/socket.5840 does not exists.
$ tmux -S /home/docker/.cache/xpanes/socket.5840 attach-session -t xpanes-5840
no sessions

This is caused by the previous changes released at v3.1.1. Socket file is automatically deleted when the process exits.
It should be fixed next release.

This was not a caused by the previous release.
It looks it's an existing bug.

Fixed at v4.0.0.


Parse Support (search only from start)

Adds "parse" function, which is equivalent to searching only from
the beginning of the input.
EG. Where
match performs ^(pattern)$
search performs [\s\S]*(pattern)[\s\S]*
parse performs ^(pattern)[\s\S]*
Handy for lexxing tokens.

In Python terms, this is
ctre::match - re.fullmatch
ctre::search - re.search
ctre::parse - re.match
I agree with having all three. Not a big fan of the name parse, but match is already taken.

Yeah I wasn't sure about the naming either, I gave it what I'm currently using it for. Given "full" I'd be tempted to say partial but that also doesn't sound right. First match also sounds off.
Match could also be exact_match, problem is match to me implies what I'd consider exact match.
Other option I guess could be lifted from the headers it's "evaluating" just once...but that might make some internal stuff confusing.

I was trying to duplicate std::regex match/search functionality, I don't see the need for specialized function when you can always use search<"^...">(...). But I'm willing to discuss the motivation.

As best I understand the source code for search:
	auto it = begin;
	for (; end != it; ++it) {
		if (auto out = evaluate(begin, it, end, return_type{}, ctll::list<start_mark, Pattern, end_mark, accept>())) {
			return out;
		}
	}

It looks as though on failure the search function will continue to loop through each character.

Coming back around to this and reading it back maybe I think part of the point I was making was a bit lost in how I was trying to explain it.
The short version, there's an optimization opportunity given the "^" anchor token and the search function which I very much would like. If you have the anchor token which means you're specifically matching the begin iterator and the iterator you don't need to perform loop.
The bonus of writing it out as a separate function is that you don't need to bother writing fixed strings with anchors since they're already implied in the function call being made.
Maybe it's that the MSVC compiler doesn't pick this up but take:
int main(void) {
	std::string input_string = "acdefghijklmnopqrstuvwxyz";
	auto m0 = ctre::parse<_test_parse>(input_string);
	auto m1 = ctre::search<_test_anchor>(input_string);

	std::cout << (bool)m0 << std::endl;
	std::cout << (bool)m1 << std::endl;

}

If you look at the assembly you'll find that the for loop doesn't get optimized away. The search function goes through the input string.


feat(locales): support haitian creole

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Add to Porn List

justindianpornx.com
olo.cool
xnxxcom.xyz
sexvideos.host
sexcom.cam
xnxxcom.xyz
mrindiaporn.com
indianpworld.com
favoriteptv.com
porncountrym.com
kuncidunia.com
hottestphq.com
hotphouse.com
awesomephq.com
indiansextube.org
viewindian.com
hottestindiansite.com

Here is some more:
redgifcams.com
v3.redgifs.com
v4.redgifs.com

@Sinfonietta could we get some help with these?


asynchronous strategy update function, backward compatible

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

What is the current behavior? (You can also link to an open issue here)
Strategy update function is strictly synchronous.

What is the new behavior (if this is a feature change)?
Now, your strategy's update function can be asynchronous or synchronous.  This uses a callback function, as per the convention in this project, and it's backward compatible with synchronous update functions.

Asynchronous update functions should return "true" to indicate that it's operating in asynchronous mode, and call the provided callback when it's done.  For example:
update: function (candle, done) {
setTimeout(() => {
// do stuff
done();
});
return true;
}

This feature would be super helpful if you need to hit a file, database, web service, ML service, etc, from within your strategy.
Anyone want to review this PR?


Value inspector breadcrumbs on large values aren't helpful

I usually use the value inspector in pretty big maps, so I navigate into them. It would be great if the breadcrumbs didn't try to show the whole value (which is too big anyway) but instead showed the navigation needed to get to the current display, i.e. [:a 1 :body 5] or similar. Even better if this navigation could be copied out.

Make sense, I will experiment with that when I get some time. Thanks!

@Cyrik The latest release 3.2.271 contains the inspector following your idea. I haven't add a navigation copy button since I can't think of a use case given we have the def button to bring any value to the repl.
Do you have a use case for it?

Thanks for getting these done so quick!
I know I sometimes use that button in portal when I'm deeply navigated into something, but portal doesn't have the def, so you probably don't need it here. I'll open a new issue if I notice that it's missing for something.


[AutoPR machinelearningservices/data-plane/compute/resource-manager] fix: MD010/no-hard-tabs

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/6985

(message created by the CI based on PR content)


handle read only filesystem

Resolves the issue where bundler errors on startup on a read only filesystem.
Resolves #5371

This needs test coverage

@segiddins I'll be honest - I have no idea where to add the coverage for that.  It seems like #4951  broke it, but I don't see where that added/changed any coverage around this break to give me an idea of where to add it.  Are you able to give me some guidance on it?

You could write a unit test in spec/bundler/ or a test in spec/commands/install that chmods the tmpdir to not be writable

@segiddins I'm trying to help @jlambert121 with a test and it's proving incredibly difficult.
The line of code being changed has no test coverage at all.  I tried to write the following test to cover the feature as implemented on master:
# in spec/bundler/bundler_spec.rb
    it "should blow up if it can't make a homedir" do
      allow(Dir).to receive(:tmpdir).and_return("/TMP")
      allow(FileTest).to receive(:exist?).with("/TMP/bundler/home").and_return(false)
      expect(FileUtils).to receive(:mkpath).once.ordered.with("/TMP/bundler/home")
      expect(FileUtils).to receive(:mkpath).once.ordered.with("/TMP/bundler/home/USER").and_raise(Errno::EACCES)
      expect {
        Bundler.tmp_home_path("USER", "")
      }.to raise_error("OH NOES")
    end

This copies the existing spec https://github.com/bundler/bundler/blob/master/spec/bundler/bundler_spec.rb#L203 and mocks the mkpath to raise the error I think would be raised.
Then I get this:
     LoadError:
       cannot load such file -- diff/lcs

Nothing is requireing this file that i can find.  The gem is definitely installed, but no idea.
Is this something obvious that I can fix?   Or can you try adding the test above and seeing what happens for you?
(full stack below)
~/Projects/bundler> rspec -b ./spec/bundler/bundler_spec.rb:212
/Users/davec/Projects/bundler/lib/bundler.rb:178: warning: assigned but unused variable - e
WARN: Unresolved specs during Gem::Specification.reset:
      diff-lcs (< 2.0, >= 1.2.0)
WARN: Clearing out unresolved specs.
Please report a bug if this causes problems.
Run options:
  include {:locations=>{"./spec/bundler/bundler_spec.rb"=>[212]}}
  exclude {:rubygems_master=>true, :git=>"=< 2.10.1", :rubygems=>"=< 2.5.1", :ruby=>"=< 2.3.1", :realworld=>true, :sudo=>true}

Bundler
  #tmp_home_path
    should blow up if it can't make a homedir (FAILED - 1)

Retried examples: 0

Failures:

  1) Bundler#tmp_home_path should blow up if it can't make a homedir
     Failure/Error:
       expect {
         Bundler.tmp_home_path("USER", "", "/foo")
       }.to raise_error("OH NOES")

     LoadError:
       cannot load such file -- diff/lcs
     # /Users/davec/.rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
     # /Users/davec/.rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-support-3.5.0/lib/rspec/support/hunk_generator.rb:1:in `<top (required)>'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-support-3.5.0/lib/rspec/support.rb:28:in `require_relative'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-support-3.5.0/lib/rspec/support.rb:28:in `block in <module:Support>'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-support-3.5.0/lib/rspec/support.rb:19:in `block in define_optimized_require_for_rspec'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-support-3.5.0/lib/rspec/support/differ.rb:2:in `<top (required)>'
     # /Users/davec/.rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
     # /Users/davec/.rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-expectations-3.5.0/lib/rspec/expectations/fail_with.rb:6:in `differ'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-expectations-3.5.0/lib/rspec/expectations/fail_with.rb:25:in `fail_with'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-expectations-3.5.0/lib/rspec/expectations/handler.rb:40:in `handle_failure'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-expectations-3.5.0/lib/rspec/expectations/handler.rb:50:in `block in handle_matcher'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-expectations-3.5.0/lib/rspec/expectations/handler.rb:27:in `with_matcher'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-expectations-3.5.0/lib/rspec/expectations/handler.rb:48:in `handle_matcher'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-expectations-3.5.0/lib/rspec/expectations/expectation_target.rb:65:in `to'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-expectations-3.5.0/lib/rspec/expectations/expectation_target.rb:101:in `to'
     # ./spec/bundler/bundler_spec.rb:213:in `block (3 levels) in <top (required)>'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/example.rb:254:in `instance_exec'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/example.rb:254:in `block in run'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/example.rb:496:in `block in with_around_and_singleton_context_hooks'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/example.rb:453:in `block in with_around_example_hooks'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/hooks.rb:464:in `block in run'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/hooks.rb:602:in `run_around_example_hooks_for'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/hooks.rb:464:in `run'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/example.rb:453:in `with_around_example_hooks'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/example.rb:496:in `with_around_and_singleton_context_hooks'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/example.rb:251:in `run'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/example_group.rb:627:in `block in run_examples'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/example_group.rb:623:in `map'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/example_group.rb:623:in `run_examples'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/example_group.rb:589:in `run'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/example_group.rb:590:in `block in run'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/example_group.rb:590:in `map'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/example_group.rb:590:in `run'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:113:in `block (3 levels) in run_specs'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:113:in `map'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:113:in `block (2 levels) in run_specs'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1835:in `with_suite_hooks'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:112:in `block in run_specs'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/reporter.rb:77:in `report'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:111:in `run_specs'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:87:in `run'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:71:in `run'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:45:in `invoke'
     # /Users/davec/.gem/ruby/2.3.1/gems/rspec-core-3.5.4/exe/rspec:4:in `<top (required)>'
     # /Users/davec/.gem/ruby/2.3.1/bin/rspec:23:in `load'
     # /Users/davec/.gem/ruby/2.3.1/bin/rspec:23:in `<main>'

Finished in 0.70739 seconds (files took 0.32427 seconds to load)
1 example, 1 failure

Failed examples:

rspec ./spec/bundler/bundler_spec.rb:212 # Bundler#tmp_home_path should blow up if it can't make a homedir

rspec requires it to show a diff when tests fail

any ideas on how I can get it to successfully require?  If I put require 'diff/lcs' in the spec file, it immediately fails with a LoadError.  If i start irbandrequire` it, it works.

Have you run bin/rake spec:deps?

ok, that worked.  thanks!

I actually have a fix for this that is more along the lines of what I was thinking in https://github.com/bundler/bundler/issues/5371#issuecomment-275310755 -- just allow skipping reading the global config when creating that temporary directory fails

Please have a look at https://github.com/bundler/bundler/pull/5421


airline-web activator crashing on new cycle

sorry for the wall of text post here, DM me on discord for more info if needed
on initial install the web service crashes when the simulation ticks over, error output:
loaded 0 alliances
Refreshed ES alliances
Local main actor received topic CycleInfo(12,0.0,0), re-publishing to akka://airline-websocket-actor-systemUncaught error from thread [
airline-websocket-actor-system-akka.actor.default-dispatcher-8]: null, shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[airline-websocket-actor-system]
java.lang.ExceptionInInitializerError
akka://airline-websocket-actor-system/user/1-0 Received cycle info on cycle: 12
at websocket.LocalMainActor$$anonfun$receive$2$$anonfun$applyOrElse$5.applyOrElse(ActorCenter.scala:115)
at websocket.LocalMainActor$$anonfun$receive$2$$anonfun$applyOrElse$5.applyOrElse(ActorCenter.scala:106)
at scala.PartialFunction$Lifted.apply(PartialFunction.scala:315)
at scala.PartialFunction$Lifted.apply(PartialFunction.scala:311)
at scala.Option.collect(Option.scala:463)
at websocket.LocalMainActor$$anonfun$receive$2.applyOrElse(ActorCenter.scala:106)
at akka.actor.Actor.aroundReceive(Actor.scala:539)
at akka.actor.Actor.aroundReceive$(Actor.scala:537)
at websocket.LocalMainActor.aroundReceive(ActorCenter.scala:93)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:614)
at akka.actor.ActorCell.invoke(ActorCell.scala:583)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:268)
at akka.dispatch.Mailbox.run(Mailbox.scala:229)
at akka.dispatch.Mailbox.exec(Mailbox.scala:241)
at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: java.lang.NullPointerException
at java.base/java.io.Reader.(Reader.java:167)
at java.base/java.io.InputStreamReader.(InputStreamReader.java:72)
at controllers.GooglePhotoUtil.getCredentials(GooglePhotoUtil.java:63)
at controllers.GooglePhotoUtil.loadBannerUrls(GooglePhotoUtil.java:111)
at controllers.GooglePhotoUtil.refreshBanners(GooglePhotoUtil.java:84)
at controllers.GooglePhotoUtil.(GooglePhotoUtil.java:51)
... 18 more
[ERROR] [SECURITY][01/21/2023 12:36:50.474] [airline-websocket-actor-system-akka.actor.default-dispatcher-8] [akka.actor.ActorSystemImpl(airline-websocket-actor-system)] Uncaught error from thread [airline-websocket-actor-system-akka.actor.default-dispatcher-8]: null, shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[airline-websocket-actor-system]
java.lang.ExceptionInInitializerError
at websocket.LocalMainActor$$anonfun$receive$2$$anonfun$applyOrElse$5.applyOrElse(ActorCenter.scala:115)
at websocket.LocalMainActor$$anonfun$receive$2$$anonfun$applyOrElse$5.applyOrElse(ActorCenter.scala:106)
at scala.PartialFunction$Lifted.apply(PartialFunction.scala:315)
at scala.PartialFunction$Lifted.apply(PartialFunction.scala:311)
at scala.Option.collect(Option.scala:463)
at websocket.LocalMainActor$$anonfun$receive$2.applyOrElse(ActorCenter.scala:106)
at akka.actor.Actor.aroundReceive(Actor.scala:539)
at akka.actor.Actor.aroundReceive$(Actor.scala:537)
at websocket.LocalMainActor.aroundReceive(ActorCenter.scala:93)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:614)
at akka.actor.ActorCell.invoke(ActorCell.scala:583)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:268)
at akka.dispatch.Mailbox.run(Mailbox.scala:229)
at akka.dispatch.Mailbox.exec(Mailbox.scala:241)
at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: java.lang.NullPointerException
at java.base/java.io.Reader.(Reader.java:167)
at java.base/java.io.InputStreamReader.(InputStreamReader.java:72)
at controllers.GooglePhotoUtil.getCredentials(GooglePhotoUtil.java:63)
at controllers.GooglePhotoUtil.loadBannerUrls(GooglePhotoUtil.java:111)
at controllers.GooglePhotoUtil.refreshBanners(GooglePhotoUtil.java:84)
at controllers.GooglePhotoUtil.(GooglePhotoUtil.java:51)
... 18 more
[info] - play.core.server.AkkaHttpServer - Stopping server...
2023-01-21 12:36:50,503 shutdown-hooks-run-all ERROR No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations. Set system property 'log4j2.debug' to show Log4j 2 internal initialization logging. See https://logging.apache.org/log4j/2.x/manual/configuration.html for instructions on how to configure Log4j 2
[info] - akka.remote.RemoteActorRefProvider$RemotingTerminator - Shutting down remote daemon.
[info] - akka.remote.RemoteActorRefProvider$RemotingTerminator - Remote daemon shut down; proceeding with flushing remote transports.
[info] - akka.remote.Remoting - Remoting shut down
[info] - akka.remote.RemoteActorRefProvider$RemotingTerminator - Remoting shut down.
with airline-data/src/main/resources/application.conf updated as per https://github.com/patsonluk/airline/commit/411cd59f8c882c76c1c7dd3e7d469fe5d775ed3b
the "web" stays up when the simulation ticks over but the website never updates, looks like there is no communication between simulation and web
SIM:
[ERROR] [01/21/2023 12:43:00.019] [websocketActorSystem-akka.remote.default-remote-dispatcher-6] [akka://websocketActorSystem/system/endpointManager/reliableEndpointWriter-akka.tcp%3A%2F%2Fairline-websocket-actor-system%40<IP_ADDRESS>%3A34619-0/endpointWriter] dropping message [class akka.actor.ActorSelectionMessage] for non-local recipient [Actor[akka.tcp://websocketActorSystem@<IP_ADDRESS>:2552/]] arriving at [akka.tcp://websocketActorSystem@<IP_ADDRESS>:2552] inbound addresses are [akka.tcp://websocketActorSystem@<IP_ADDRESS>:2552]
WEB:
akka://airline-websocket-actor-system/user/local-main-actor resubscribe due to ping timeout
akka://airline-websocket-actor-system/user/local-main-actor resubscribe due to ping timeout
akka://airline-websocket-actor-system/user/local-main-actor resubscribe due to ping timeout
akka://airline-websocket-actor-system/user/local-main-actor resubscribe due to ping timeout
akka://airline-websocket-actor-system/user/local-main-actor resubscribe due to ping timeout
If I update airline-web/conf/application.conf and set
airline.akka-actor.host="<IP_ADDRESS>:2552" to match the setting on the airline-data side, then the web can talk to the sim again (time updates, countdown to next cycle works again) but I'm back to teh web service crashing every time the cycle ticks over.
Same error as above on the "web" side, see this on the "data" side:
[WARN] [01/21/2023 12:54:53.148] [websocketActorSystem-akka.remote.default-remote-dispatcher-16] [akka.tcp://websocketActorSystem@<IP_ADDRESS>:2552/system/endpointManager/reliableEndpointWriter-akka.tcp%3A%2F%2Fairline-websocket-actor-system%40<IP_ADDRESS>%3A46179-0] Association with remote system [akka.tcp://airline-websocket-actor-system@<IP_ADDRESS>:46179] has failed, address is now gated for [5000] ms. Reason: [Disassociated]

I think the socket is probably working okay. From the back trace it appears that it's triggered by
Caused by: java.lang.NullPointerException
at java.base/java.io.Reader.(Reader.java:167)
at java.base/java.io.InputStreamReader.(InputStreamReader.java:72)
at controllers.GooglePhotoUtil.getCredentials(GooglePhotoUtil.java:63)
at controllers.GooglePhotoUtil.loadBannerUrls(GooglePhotoUtil.java:111)
at controllers.GooglePhotoUtil.refreshBanners(GooglePhotoUtil.java:84)
at controllers.GooglePhotoUtil.(GooglePhotoUtil.java:51)

There's a google photo util that loads banner and i assume you don't have that set up (which is fine, as it was stated in README that banner should be disabled by default)
Should perform a check in LocalMainActor that if banner is disabled, it should not touch the GooglePhotoUtil 😓

Please pull the latest, should be fixed in https://github.com/patsonluk/airline/commit/dab32dbc071d5a104ed7f50e90c2739257351d19 !


Issue with StackClients resource using py4jps 1.0.35

The latest release of py4jps seems to affect how additional java resources are installed/loaded.
The ForecastingAgent uses both the JPSBaseLib and StackClients via py4jps. The agent image is build using the following Dockerfile, which includes the installation of the StackClients jar resource from another Docker image using jpsrm :
https://github.com/cambridge-cares/TheWorldAvatar/blob/hotfix-forecasting-agent/Agents/ForecastingAgent/Dockerfile
While this works well for py4jps 1.0.34, using version 1.0.35 fails. The image still builds successfully; however, when trying to launch the java gateway to the StackClients, a file not found error is raised.

The ForecastingAgent uses both the JPSBaseLib and StackClients via py4jps. The agent image is build using the following Dockerfile, which includes the installation of the StackClients jar resource from another Docker image using jpsrm : https://github.com/cambridge-cares/TheWorldAvatar/blob/hotfix-forecasting-agent/Agents/ForecastingAgent/Dockerfile

Just to make sure the above link can still be resolvable should the PR gets merged, please refer to below instead: https://github.com/cambridge-cares/TheWorldAvatar/blob/4ed5df32d73eb1b9acbb93384995125f85c46725/Agents/ForecastingAgent/Dockerfile

Just for the record:
The root cause is the presence of the StackClients sub-folder in the python_wrapper/py4jps/resources directory of the machine I am making the release. This folder was left there from a previous installation of stack-client in the editable mode of py4jps in one of my environments. However, this folder was not included in the python_wrapper/MANIFEST.in file, which means that only the StackClients.py file is included in the py4jps 1.0.35 package on PyPI, but not the .jar files. (By default, .jar files are ignored unless explicitly specified in the MANIFEST.in file.) Due to the py file being present, the StackClients package is considered to exist in py4jps, which gives the "Info: Resource already exists" message when installing it from the Dockerfile (not actually installed) and subsequently the error encountered when calling it.
The short-term solution is https://github.com/cambridge-cares/TheWorldAvatar/pull/805. In the long run, we may want to consider the following suggestions at https://github.com/cambridge-cares/TheWorldAvatar/issues/360.


Code workflow

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: johannlameyer sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Wrong master


Add ELFoundation_static target

This change adds a new target named ELFoundation_static. This target builds a static version of ELFoundation.framework.

It shares the same source files as dynamic ELFoundation framework and builds a product with the same name.
Framework's module name is also the same as that of dynamic framework.
It uses the same Info.plist file as dynamic framework target.
Travis script is updated to build both targets and clean before building.

Going forward, ELFoundation_static framework needs to be managed as well as ELFoundation target. Sources added or removed, build setting changes, build phase changes should be reflected on ELFoundation_static target.

Should we just remove the dynamic target?

I think we should keep the dynamic target. That way, any app or other framework that depend on ELFoundation can continue using future version (either via Carthage or manually) without any changes on project level on their side.


fix: lowercase error messages

lowercase some overlooked error messages
Pull Request Description
Ensure you have read the contribution guide before filling in a description of the
pull request, regardless of whether it is complete or a work in progress.
All Pull Requests should include test case(s) which demonstrates the intended
behavior of a feature, or a regression test demonstrating that the fix resolves
the issue.

merged


Adding an Offset class to refer to Log offsets

This is in preparation for log segmentation where offsets will not be represented by a single "long" but will be referred to by a segment name and offset.
This commit also removes unused classes and interfaces that were not needed:

InMemoryIndex
InMemoryIndexTest
JournalFactory
Journal

Testing done: ./gradlew build && ./gradlew test
Formatted.
Primary reviewers: @nsivabalan, @pnarayanan
Expected time to review: 20 mins
Unit testing

Class
Class, %
Method, %
Line, %

Offset
100% (1/ 1)
100% (8/ 8)
100% (33/ 33)

Non-exhaustive list of where this class may be used:
FileSpan
InMemoryJournal
JournalEntry
Log
PersistentIndex
BlobStore
IndexValue
StoreFindToken

@nsivabalan @pnarayanan Addressed comments.

@pnarayanan Addressed comments.

LGTM

@pnarayanan Addressed comments.

Just the one comment. Also, you have a merge conflict now (probably has to do with readIntString() changes that got merged). Can merge this once you address those.

Built and formatted


Reportback Permalink page (bender)

A page which displays a User's Reportback Image and Caption, and includes a Signup form / modal for its associated Campaign.  Also being referred to as a sharecard within the biz.

[ ] Menu and page callback
[ ] Determine path. e.g. dosomething.org/rb/234

per meeting with @angaither and @aaronschachter we decided URL structure should be /rb/[rbid]#[fid] - this will set us up for a future where we want the permalink to host all images of a reportback and allow the user to either carousel through or use thumbnails to see different images


Fix selector for table-layout rule

Fixes #1063 (again, issue reopened).
I noticed a CSS selector that looks like it's missing a comma.
This CSS rule has some history:

Add rule: #954
Increase selector specificity: #1018
Extend selector: #1089

gotta love those one-character PRs!

We are using prettier as a pre-commit hook. Though reading through https://prettier.io/docs/en/comparison we might need a combination of prettier + a linter to catch these type of bugs

a quick search turned up

https://www.npmjs.com/package/scss-validator
https://www.npmjs.com/package/ultiscss

I added a linter in another PR (#1764) but as @Carreau guessed, it does not pick up the error fixed in this PR.
I wish I knew a good way to add a regression test. But I don't even know how to recreate the original issue with a data table on which I vary table-layout from "auto" to "fixed". It seems like something else was going on #1063 and #1017.
I actually don't think the root issue originally was just the table-layout property, though. As far as I can tell, the table-layout: fixed rule only becomes an issue when the table's width is constrained, for example by a CSS width rule on the table element itself.
So I think that issues #1063 and #1017 were actually fixed in #1482 by a change in _tables.scss.
In fact I wonder if the right thing to do would be to remove the table-layout rule. Unless an explicit width is set, table-layout: fixed doesn't actually have an effect.
The reason why we're even dealing with table-layout: fixed is because nbsphinx added it to their stylesheet (https://github.com/spatialaudio/nbsphinx/pull/228), and the only reason nbsphinx added it is because Jupyter Notebook added it. There's some discussion on https://github.com/jupyter/notebook/pull/1776 about whether to use table-layout auto or fixed, but it's a little unclear to me what the ultimate takeaways from that discussion should be.

Thinking about this some more, I think we can apply table-layout: auto and call it a day. This seems to me the safest option. Removing the rule could cause the fixed ruled to apply in some edge cases where for some reason an explicit width is set on a table (and fixed layout is generally more problematic, you should only use it when you really know ahead of time what the table contains, where it will appear, how much width it will have).

I marked this ready for review

thanks for the detective work @gabalafou


Add az aks ai command

The az aks ai command initiates a chat with an Azure Kubernetes Service AI Expert, providing scripts for az commands along with instructions ('re-prompt', 'run', 'quit') for interactive use.
Summary of changes in each file:

_help.py: Added help text for the new aks ai command.
_openai_wrapper.py: Added a new file that contains the implementation of the OpenAI chat assistant.
commands.py: Added the aks ai command to the command table.
custom.py: Added the start_chat function that launches the OpenAI interactive shell.
tests/latest/test_aks_commands.py: Added tests for the aks ai command.
setup.py: Updated the version number and dependencies

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update src/index.json automatically.
You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify src/index.json.

Thank you for your contribution! We will review the pull request and get back to you soon.

Please take a look at this comment https://github.com/Azure/azure-cli-extensions/pull/6629#issuecomment-1673859739 You need to add the description of PR change into the HISTORY.rst


Error message shown when trying to register in offline mode

There was a crash when trying to register in offline mode. Have added check for offline mode and displayed message.
@rohan-dhamal-clarice @aleffert - Please review.

:+1:


Get render data with a hyphen

Access a dictionary value that has a dash/hyphen in it. E.g. foo-bar
env = Environment()
tpl = env.from_string('''{{foo-bar}}''')
data = {'foo-bar': 'Foo Bar'}
assert tpl.render(data) == data['foo-bar']
Results in: jinja2.exceptions.UndefinedError: 'foo' is undefined
'''
/usr/local/lib/python3.8/site-packages/jinja2/environment.py:1090: in render
self.environment.handle_exception()
/usr/local/lib/python3.8/site-packages/jinja2/environment.py:832: in handle_exception
reraise(*rewrite_traceback_stack(source=source))
/usr/local/lib/python3.8/site-packages/jinja2/_compat.py:28: in reraise
raise value.with_traceback(tb)
'''
Environment:

Python version: Python 3.8.3
Jinja version: 2.11.2

don't pass such data as top level variables. if you really need them nest them in a dict.

Here is my workaround.
@contextfilter
def do_dashes(self, context, value):
    return context.resolve(value)

def test_match_dict(self):

    env = Environment()
    env.filters['dashes'] = self.do_dashes
    tpl = env.from_string('''{{"foo-bar"|dashes}}''')
    tpl = env.from_string('''{{foo-bar}}''')
    data = {'foo-bar': 'Foo Bar'}

    assert tpl.render(data) == data['foo-bar']

Since everything is a dict in Python, the name foo-bar can be added to a scope, but it's also not valid as an identifier, so it's not possible to look it up by name in the syntax. You can produce this exact same issue in Python itself in certain cases. The workaround demonstrates the "everything is a dict" principle, but I'd really discourage using that.


Chrome 125: Shipping Anchor Positioning

Anchor positioning shipping in 125: https://chromestatus.com/feature/5124922471874560

Thanks!


implementing page: Improve visual design of GF screenshots

The red ovals on the screenshots (eg /assets/img/gf_ui_1.png) do not look great
I suggest improving them with a 'spotlight' treatment, where a oval mask is applied to a semi-transparent dark layer to highlight the same areas

Potentially a short GIF showing the interaction with the elements could also be good. www.getkap.co is nice for this on macOS :)

Ah it was https://boinx.com/mousepose/ that makes the kind of screenshots I was thinking of

@davelab6 I decided not to add animated GIFs as they don't scale nicely (for viewport) but I think these ended up working nicely


--scan adds the gradle-enterprise-gradle-plugin to buildscript classpath again when it already exists

Expected Behavior
If a project applies the gradle-enterprise-gradle-plugin, adding the --scan option shouldn't make a difference since it's already in the build classpath.
Current Behavior
When running the build with --scan option, the gradle-enterprise-gradle-plugin is directly applied to the build, which in turns modify the build classpath ordering.
This may impact build cache for tasks having the build classpath as an input.
Context
The gradle-enterprise-gradle-plugin is applied directly in settings.gradle and defined in an included build.
Steps to Reproduce
Here is a project to reproduce the issue:
https://github.com/jprinet/build-classpath-ordering-issue-with-scan
./gradlew build

https://scans.gradle.com/s/3qbl4vcwkxy3g/build-dependencies?toggled=W1swXSxbMCwwXSxbMCwwLFs0XV1d
./gradlew build --scan

https://scans.gradle.com/s/6itd7v2z6unk6/build-dependencies?toggled=W1swXSxbMCwwXSxbMCwwLFs1XV1d
With --scan, the Build Dependencies section of a build scan shows direct application of the plugin, although without the option, the plugin is applied through the enterprise-plugin defined in the included build.
Your Environment
Not relevant

See https://gradle.slack.com/archives/C012L0276KF/p1650638139062209 for some more information.

After further analysis, this issue is a bit broader than the title suggests:

Running with --scan can result in a newer version of the GE plugin being applied compared to running the same build without --scan. This could cause failures publishing a build scan if the Gradle version is newer than the target GE instance.
To see this behaviour, clone https://github.com/bigdaz/duplicate-ge-plugin-application.

Run ./gradlew build: GE plugin 3.8.1 is applied
Run ./gradlew build --scan: GE plugin 3.10.2 is applied

The issue can arise whenever a custom plugin depends on and applies the GE build scan plugin, whether the plugin is resolved from a repository or consumed via an included build.
To see this behaviour,  checkout the published-plugin branch.

Publish the plugin to maven local: ./gradlew -p build-src publishToMavenLocal
Run the same 2 builds as above: same behaviour

The issue is also present for a published plugin that is resolved via buildscript block and applied using apply plugin:.
To see this behaviour,  checkout the build-script-block branch.

If not already done, publish the plugin to maven local: ./gradlew -p build-src publishToMavenLocal
Run the same 2 builds as above: same behaviour

In summary the logic that detects --scan and applies the GE plugin fails to detect a pre-existing GE plugin when that the GE plugin is brought in as a transitive dependency of an applied plugin.

I spent some time trying to find a way to detect if the GE plugin already exists in the graph before auto-applying the version based on --scan. In the end, I can't find any non-intrusive mechanism to do this.
The most promising approach I tried was:

Instead of merging the auto-applied GE plugin request early (here), wait until after all of the existing plugin requests have been resolved (here).
Add a method to PluginResolution that indicates whether the resolved plugin includes the GE plugin. We'd need to implement this separately for the various PluginResolution implementations (ArtifactRepository, LocalPluginResolution, ClassPathPluginResolution, etc).
If --scan is provided on the command-line and no other plugin drags in GE, only then would we resolve the GE plugin and add it to the set of resolved plugins.

I've raised a separate issue for the case where --scan can result in a different version of the GE plugin applied: #22272

This issue has been superceded by #22272 and #22273


[Bug] - Program crashes with adding CCA

As found by @kyawtsan99, this crashing behavior is verified as of the current build. Could we look into this by tomorrow?

I could not reproduce it at all
Did you merge the latest code before trying the command?
x-special/nautilus-clipboard
copy
file:///home/longlh/Pictures/Screenshot%20from%202019-11-10%2022-42-08.png

@LongLeCE you're right, the behavior was such as I did not delete the existing user profile file
@e0313687 @andrewleow97 @kyawtsan99 note that for testing we would have to remove the password portion for tests using InputTest as the update in #124 no longer applies.

Closed as bug no longer affects.


[BUILD] fix ubuntu arm64 build

Fixed issue that occured with ubuntu arm64 builds, here is a run where this workflow was run
LLVM build

Please run pre-commit

How did you figure out these flags btw?

How did you figure out these flags btw?

trial and error + a bit of help from GPT, also verified by running file on the finished build

Tried fiddling around with a bunch of CMake options but I think this is from the host python version. Works fine

let me know any concerns since I'm aware this code is a bit hacky

Hello, what is the straight-forward way to install triton on an aarch64 machine (such as an Nvidia Jetson)?

Hi @WikiLucas00, I thought the build has been fixed after this PR, but actually I'm still seeing mlir-opt's ELF format doesn't match. @danikhan632, do you want to double check? Weirdly, if I use the same LLVM build instructions and build it locally, that works.
Regarding your question, currently you'll have to build LLVM first, then build triton.

Hi @WikiLucas00, I thought the build has been fixed after this PR, but actually I'm still seeing mlir-opt's ELF format doesn't match. @danikhan632, do you want to double check? Weirdly, if I use the same LLVM build instructions and build it locally, that works.
Regarding your question, currently you'll have to build LLVM first, then build triton.

can u show a screenshot? I think I built locally too and it reads as aarch64 so a bit concerned about this

oh thats not good, a bit uncertain why this is happening since when file is run on it says arm64, let me fix this my bad


feat: Component-based Authentication - via abstract

abstract NetworkAuthenticator based on #1057

inherit from NetworkAuthenticator to make your own
simply call OnServerAuthenticated.Invoke() and Mirror handles the successful auth. This way we can still control what we do upon successful auth, and auth components never have to worry.
users don't have to worry about how to properly auth someone. just invoke the event.
existing projects won't be touched
simple projects remain simple. no empty component added
it's easier to use than #1057 . there is only one way to do it. inherit and add component. nothing to remove etc.
inspector assigned events persist after OnStopServer because we only remove exactly those, not all listeners

basically, KISS - keep it simple and stupid.
TODO

update docs

NetworkManager still works without authenticator:

Example:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Mirror;

public class ExampleAuthenticator : NetworkAuthenticator
{
    /// <summary>
    /// Called on server from OnServerAuthenticateInternal when a client needs to authenticate
    /// </summary>
    /// <param name="conn">Connection from client.</param>
    public override void OnServerAuthenticate(NetworkConnection conn)
    {
        OnServerAuthenticated.Invoke(conn);
    }

    /// <summary>
    /// Called on client from OnClientAuthenticateInternal when a client needs to authenticate
    /// </summary>
    /// <param name="conn">Connection from client.</param>
    public override void OnClientAuthenticate(NetworkConnection conn)
    {
        OnServerAuthenticated.Invoke(conn);
    }
}

Changes to Assets/Mirror/Examples/Tanks/Scenes/Scene.unity should be in a separate PR.

Since abstract classes can't be added in the inspector as components, there's no default component we can add built-in features to, like a timeout.

Could you stop tweaking and come back to Discord, please?


Update Quilt Meta CI

This commit removes the HTTP request task and replaces it by the new GitHub Actions setup.
Draft until the last secret is added to the organisation.

Has this been tested with another repository or manual action?

Has this been tested with another repository or manual action?

The action has been confirmed successful with various test runs done on its own repo. The only thing that I'm unsure about is whenever I'll need to publish the action or not, the docs really aren't clear about that, but even if that's the case no further action will be required in this repo.
tl;dr: even if there is breakage, it is made so the content in the various repositories don't need changing.


Add Store

Dear Felix,
thank you for your great work porting SimPy to Golang.
Is it possible to add the simple Store , like @peterjrichens implemented:
https://github.com/peterjrichens/simgo/blob/main/store.go

Hi @maltegrosse, I implemented a simple store in here: https://github.com/fschuetz04/simgo/blob/main/store.go. Usage should be similar to @peterjrichens solution:
sim := &Simulation{}
store := NewStoreWithCapacity[int](sim, 1)

sim.Process(func(proc Process) {
  proc.Wait(store.Put(42))
  ev := store.Get()
  proc.Wait(ev)
  fmt.Println(ev.Item)
})

sim.Run()

Please test and report whether it works for you.

@fschuetz04
Thank you! I will test it next year as I am currently in a middle of a development where I got  @peterjrichens solution working.
(and i dont wanna break anything :-)


Proposed documentation contribution: deploying to new server

The Configuration Guide speaks to running from a new port, but not from running from something other than localhost.  See https://github.com/tinaColemanNextCentury/owf-wiki/commit/80fe9e914cde31e39a18703f89a925f53c6d48b4
As an aside, attempting to contribute via guidance on http://fusiongrokker.com/post/how-you-can-contribute-to-taffy-documentation, as vetted by gollum team at https://github.com/gollum/gollum/issues/265.

Merged


Move shell scripts from core to common-scripts

This is important for minimal images not based on s2i-core.
Related to: https://github.com/sclorg/s2i-python-container/pull/467 has to be merged together with: https://github.com/sclorg/container-common-scripts/pull/210

@hhorak @pkubatrh @phracek @torsava  I need to know your opinion here because I'm probably far away from all the use cases and all the tools working with those container images. The final image should be the same, no problem there. Building with make build also works because the docker context folder is one level higher.
We are using something very similar for Python containers for a long time and it works. Every time I copy something from the upstream repository to dist-git, I'm using -L for the cp command so it follows symlinks and does not copy them as they are.
If you want to play with it, switch your common scripts to https://github.com/sclorg/container-common-scripts/tree/core-scripts

The only thought I have is about the name container-root -- that directory is gonna be added as a whole usually. This change opens an opportunity to share some other scripts this way for other purposes, e.g. between mariadb and mysql or for containers based on s2i-base now, but building on a different parent.. (just random use cases, that are likely not real now).. so the point is that we can call it rather core-root, so we can add more such "roots" in the future that will be called differently.

Maybe even add another directory layer (something like shared-scripts/core instead of just core-root) if we are already planning to share some others.
From the tools viewpoint, I think having the scripts in common-scripts should be ok - we already have other scripts in there so the tooling should be prepared to copy them in if needed.

Thanks for the feedback. I've renamed the folder in both PRs.

This is no longer a draft. All feedbacks are incorporated and I believe it's ready to be merged.

[test]

I was afraid that I forget to change relative paths in the base image but there are no copy commands so the changed docker context should have zero impact there.

The tests are running for 9 days now. There is a conflict in the common module which is okay, this should be merged after we merge https://github.com/sclorg/container-common-scripts/pull/210 so this PR can contain also the latest common submodule with the new folder.
[test]

Since the common scripts submodule is ready for this change, I've updated it and did a rebase. This should be now ready for a merge.
[test]

All green!


Whitepaper: A Minimal Viable Dataspace with Eclipse Dataspace Components utilizing Intel Software Guard Extensions

A dataspace connector is a key part of any dataspace's infrastructure as it will be the agent to establish organizational identities, connect to dataspace-external data sources and sinks, and host the policy enforcement point for any in-dataspace operation.
Securing such a critical component of a dataspace against external attacks is essential in creating a convincing data-sovereign setup that can be hosted on-prem or in the cloud.
In this white paper we are going to explain how an EDC deployment based on Confidential Computing principles - runtime encryption and attestation - is possible. We are going to show how Intel's Software Guard Extensions can be utilized to set up a Minimal Viable Dataspace (MVD) without fundamental changes to the code of the business logic.

Hi @PeterKoen-MSFT,
Any recommendation about the proper way of publishing this white-paper?
Thanks

You can format the whitepaper as a .md and create a pull request in the Publications repository. There it can be reviewed and discussed. If it fits into the overall mission and architecture of EDC it will be a welcome contribution.
Alternatively you can publish it on your own website in the format of your choice and if it fits into the overal mission and architecture of EDC we can create a short .md file with a summary in the Publications repository that will point to the whitepaper.


Invalid date when changing datetime in safari

Describe the bug
Safari's datetime-local picker does not include time selection, leading to invalid datetime return value.
Is it possible to separate date and time selection?
Steps to reproduce

The version of Memos you're using.
0.22.4
safari version 17.5
Screenshots or additional context
No response

Memos uses a standard HTML input which is set set to show date time. How the date time is displayed depends on how your browser implements it, e.g. Edge and Chrome shows date and time, Firefox and Safari shows just date (See documentation https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime-local)
A quick solution to change dates and times would be to use a Chromium browser

Linking active date change issue
https://github.com/usememos/memos/issues/3812


Allow general users to login to backend

Voyager just allows the admin user login to the backend, But I want to make all users can login to backend with limited features/menus. Is Voyager capable to do this?

Issue template is not optional.  Also, I believe I answered this question for you on another issue.
Please ask questions in slack instead of github. We try to reserve this space for project code issues and feature requests

@fletch3555 Which channel should I use for voyager?

@fletch3555 can you send me an invitation to<EMAIL_ADDRESS>please?

I expect it'll be obvious once you look, but questions And requests for help should be asked in the #help channel

The link is available in our readme

Is this the slack channel? https://laravel-voyager.slack.com/
or which one. I just can't find the proper channel.

I found thanks


fix: error on comment-only YAML front matter

YAML front matters such as the following:
---
# Nothing here.
---

previously resulted in:
error: TypeError: Cannot set properties of null (setting 'content')

which as it turns out was caused by this Deno standard library peculiarity:
> import {parse} from<EMAIL_ADDRESS>> parse('')
undefined
> parse('# test')
null

Okay, good catch! Probably this should be fixed in the std/yaml implementation, but for now it's okay to fix it here.

The std/yaml impl is a copy of js-yaml, which has a relevant issue from 2020.

Thanks for the info. I just filed the issue at https://github.com/denoland/deno_std/issues/3426


eth/abi: allow encoding address types

this is the closest I could get to fix #241

Codecov Report

Merging #242 (620ecd4) into main (4b09acc) will increase coverage by 0.00%.
The diff coverage is 100.00%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@           Coverage Diff           @@
##             main     #242   +/-   ##
=======================================
  Coverage   99.66%   99.66%
=======================================
  Files          77       77
  Lines        4436     4439    +3
=======================================
+ Hits         4421     4424    +3
  Misses         15       15

Impacted Files
Coverage Δ

lib/eth/abi/encoder.rb
100.00% <100.00%> (ø)

spec/eth/abi/encoder_spec.rb
100.00% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Add filesize

Thank you!
We are planning for a plugin mechanism of file validation and post-processing. We will include your PR in it. Please give me some time.