[FEATURE] Make Grafana folder and datasource creation configurable with boolean flags

Is your feature request related to a problem? Please describe
When trying to reuse the same repo with two EKS clusters, where two EKS clusters pipe their metrics to the same AMP workspace, the tasks would fail saying the Grafana folder and/or the datasource already exists.
Describe the solution you'd like
I want to enable two boolean variables to control the creation of the Grafana folder and/or the datasource. When this repo is used for the first EKS cluster, the variables would be set to true and when run for the second EKS cluster they would be set to false
Describe alternatives you've considered
There aren't any suitable alternatives to the problem, other than the proposed solution above, in my opinion.
Additional context
Nope, that is all

Thanks for raising this @vchintal. Happy to review your PR when ready


Add an Upload Secure File task

As a VSTS user, it would be immensely helpful to be able to upload/update secure files from a build task. For example, LetsEncrypt certs that expire every 90 days. The renewal task could be automated and moved to a build task to eliminate the need for specific hardware running that job outside of control.
In the meantime, is there an API endpoint for managing secure files?

@viertaxa - we have APIs that allow uploading new secure files. They are not on our docs page, that is a gap which we will look into. We don't allow updating the contents of an existing secure file, you have to currently delete and create new one which will create a new unique ID for the file.
POST https://dev.azure.com/{organization}/{project}/_apis/distributedtask/securefiles?api-version=5.0-preview.1&name={fileName}

Content-Type=application/octet-stream

Thanks,
Madhuri

@viertaxa - we have APIs that allow uploading new secure files. They are not on our docs page, that is a gap which we will look into. We don't allow updating the contents of an existing secure file, you have to currently delete and create new one which will create a new unique ID for the file.
POST https://dev.azure.com/{organization}/{project}/_apis/distributedtask/securefiles?api-version=5.0-preview.1&name={fileName}

Content-Type=application/octet-stream

Thanks,
Madhuri

@madhurig What is the API call to delete the existing securefile?  Tried the following
DELETE https://dev.azure.com/{organization}/{project}/_apis/distributedtask/securefiles?api-version=5.0-preview.1&name={fileName}
but got the following message "HTTP Error 405: Method Not Allowed".
We need the API call to delete the securefile to create the new one with updated data.
Thanks,
Dina.

@madhurig or anyone who might came across this,
Is there any way to enable "Authorize for use in all pipelines" for any file uploaded via above POST method? is there any additional parameter or something?

additionally how do can you download the previously uploaded file?
GET https://dev.azure.com/{organization}/{project}/_apis/distributedtask/securefiles/{fileGuid}?download=true does not seem to work...

@madhurig or anyone who might came across this,
Is there any way to enable "Authorize for use in all pipelines" for any file uploaded via above POST method? is there any additional parameter or something?

hey @bondarewicz, did u find the solution?

Hi, has anyone in this thread used the API mentioned by Madhurig? I am talking about
POST
https://dev.azure.com/{organization}/{project}/_apis/distributedtask/securefiles?api-version=5.0-preview.1&name={fileName}
Content-Type=application/octet-stream

@wahmed23 Yes, i was able to test it out:
test.ps1:
`param
(
[Parameter(Mandatory=$true)] [string] $PAT,
[Parameter(Mandatory=$True)][ValidateNotNullOrEmpty()]$AzureDevOpsOrg,
[Parameter(Mandatory=$True)][ValidateNotNullOrEmpty()]$AzureDevOpsProjectID,
[Parameter(Mandatory=$true)] [string] $SecureNameFile2Upload,
[Parameter(Mandatory=$true)] [string] $SecureNameFilePath2Upload
)
try{
$base64AuthInfo=[Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "",$PAT)))
$uploadSecureFileURI="https://dev.azure.com/$AzureDevOpsOrg/$AzureDevOpsProjectID/apis/distributedtask/securefiles?api-version=5.0-preview.1&name=$SecureNameFile2Upload"
$headers = @{
Authorization=("Basic {0}" -f $base64AuthInfo)
}
Invoke-RestMethod -Uri $uploadSecureFileURI -Method Post -ContentType "application/octet-stream" -Headers $headers -InFile "$SecureNameFilePath2Upload"
}
catch
{
write-host -f Red "Error upload client certificate file [$SecureNameFilePath2Upload] to AzureDevOps secure file!" $.Exception.Message
throw "Error occors -> $_.Exception.Message"
}`

@wahmed23 Yes, i was able to test it out:
test.ps1:
param
(
    [Parameter(Mandatory=$true)] [string] $PAT,
    [Parameter(Mandatory=$True)][ValidateNotNullOrEmpty()]$AzureDevOpsOrg,
    [Parameter(Mandatory=$True)][ValidateNotNullOrEmpty()]$AzureDevOpsProjectID,
    [Parameter(Mandatory=$true)] [string] $SecureNameFile2Upload,
    [Parameter(Mandatory=$true)] [string] $SecureNameFilePath2Upload
)

try{
    $base64AuthInfo=[Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "",$PAT)))
    $uploadSecureFileURI="https://dev.azure.com/$AzureDevOpsOrg/$AzureDevOpsProjectID/_apis/distributedtask/securefiles?api-version=5.0-preview.1&name=$SecureNameFile2Upload"
    $headers = @{
        Authorization=("Basic {0}" -f $base64AuthInfo)
    }
    Invoke-RestMethod -Uri $uploadSecureFileURI -Method Post -ContentType "application/octet-stream" -Headers $headers -InFile "$SecureNameFilePath2Upload"
}
catch
{
    write-host -f Red "Error upload client certificate file [$SecureNameFilePath2Upload] to AzureDevOps secure file!" $_.Exception.Message
    throw "Error occors -> $_.Exception.Message"
}

What kind of response are you getting?
I get
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100   743  100   693  100    50   9240    666 --:--:-- --:--:-- --:--:--  9906
<title>Object moved</title>

Object moved to here.

So I would assume that the command went through. However, I see no new secure files in Pipelines -> Library -> Secure files.
What could be wrong?

For secure file delete use PUT API https://dev.azure.com/{organization}/{project}/_apis/distributedtask/securefiles/{secureFileID}?api-version=5.0-preview.1
And for secure file upload use POST API https://dev.azure.com/{organization}/{project}/_apis/distributedtask/securefiles?name={fileName}&api-version=5.0-preview.1
Content-Type=application/octet-stream

I'm going to close this issue since we are not planning on adding a task for this and I believe all questions have been answered. If there are any further issues with these APIs, please open a ticket at https://developercommunity.visualstudio.com/spaces/21/index.html or open a docs bug at https://github.com/MicrosoftDocs/azure-devops-docs/issues/new

Any ideas why this fails:
$ curl --trace-ascii /tmp/dump.txt  -v -H 'Content-Length: 1634' -L -X POST -H 'Content-Type: application/octet-stream' --data-binary keys.tgz 'https://dev.azure.com/YY/XX/_apis/distributedtask/securefiles?name=foo_test.tgz&api-version=5.0-preview.1'
Warning: -v, --verbose overrides an earlier trace/verbose option

About to connect() to dev.azure.com port 443 (#0)
Trying <IP_ADDRESS>...
Connected to dev.azure.com (<IP_ADDRESS>) port 443 (#0)
Initializing NSS with certpath: sql:/etc/pki/nssdb
CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
SSL connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
Server certificate:

  subject: CN=dev.azure.com

  start date: Nov 18 13:11:54 2020 GMT

  expire date: Nov 18 13:11:54 2021 GMT

  common name: dev.azure.com

  issuer: CN=Microsoft RSA TLS CA 01,O=Microsoft Corporation,C=US

POST /YY/XX/_apis/distributedtask/securefiles?name=foo_test.tgz&api-version=5.0-preview.1 HTTP/1.1
User-Agent: curl/7.29.0
Host: dev.azure.com
Accept: /
Content-Length: 1634
Content-Type: application/octet-stream

upload completely sent off: 45 out of 45 bytes
SSL read: errno -5961 (PR_CONNECT_RESET_ERROR)
TCP connection reset by peer
Closing connection 0
curl: (56) TCP connection reset by peer

For secure file delete use PUT API https://dev.azure.com/{organization}/{project}/_apis/distributedtask/securefiles/{secureFileID}?api-version=5.0-preview.1

Actually you need to use a DELETE method. Not a PUT method in order to remove a secure file. This will return a HTTP status code 204 when successful with an empty response.

Is it possible to delete secure file by name instead of Id or
is it possible to override if secure file with the same name already exist? I get conflict if secure file already exist. I couldnt find any parameter like force or replace etc.

This looks that it's working to upload secure files with rest api with version 5.0-preview... Since it is preview (although pretty old), is it possible to use it in production environment? Or how likely that is that it will stop functioning?

Is there a way how to restore deleted secure file?
Even if all permissions on secure file is set to Reader, Project Admins can delete this item. Is it possible to restore the secure file?

a summary of all above conversations:
GET - list all the secure files
https://dev.azure.com/{{organization}}/{{project}}/_apis/distributedtask/securefiles?api-version={{api_version}}

POST - upload a new secure file
https://dev.azure.com/{{organization}}/{{project}}/_apis/distributedtask/securefiles?api-version={{api_version}}&name=fromPostman
Content-Type=application/octet-stream

DELETE - Delete a secure file with its ID
https://dev.azure.com/{{organization}}/{{project}}/_apis/distributedtask/securefiles/{{secureid}}?api-version={{api_version}}

GET - read details of a secure file with its ID
https://dev.azure.com/{{organization}}/{{project}}/_apis/distributedtask/securefiles/{{secureid}}?api-version={{api_version}}

If this API endpoint exists since 2019 why is it still not officially added to the API documentation?
Is there some kind of "authorize" parameter I can use to set no restrictions for pipeline permissions?

It's already 2023, yet the securefiles API endpoint is still nowhere to be found.

Does anyone know how I can download a secure file using REST API?
I've only seen list/upload/delete/get info in this thread so far.

I am using this API on a pipeline triggered by a CRON job in order to rotate keys stored in secure files. I'm using the GET, DELETE and POST methods against multiple projects with success, but I still manually need to set the pipeline permissions.
Do we know if there's a way to set the pipeline permissions via some query param of the POST request?

@bgowers @dimizuno did you find any way to automatically set the pipeline the permissions?

@bgowers @dimizuno did you find any way to automatically set the pipeline the permissions?

@ChrisF987-coles yes I did!
You can use the Update Pipeline Permissions For Resource endpoint.
I used it like:
...

create_secure_file_endpoint="https://dev.azure.com/$org/$project/_apis/distributedtask/securefiles?api-version=5.0-preview.1&name=$secure_file_name"

create_secure_file_response=$(curl -s -X POST -u "$PAT_USER:$PAT_SECRET" -H "Content-Type: application/octet-stream" --data-binary @$NEW_KEY_FILEPATH "$create_secure_file_endpoint")

new_secure_file_id=$(echo $create_secure_file_response | jq '.id' | tr -d '"')
  update_secure_file_permissions_endpoint="https://dev.azure.com/$org/$project/_apis/pipelines/pipelinepermissions/securefile/$new_secure_file_id?api-version=7.0-preview.1"

curl -X PATCH \
  -u "$PAT_USER:$PAT_SECRET" \
  -H 'Content-Type: application/json' \
  --data-raw '{
      "allPipelines": {
        "authorized": true
      }
    }' \
  "$update_secure_file_permissions_endpoint"

I hope that helps!

@bgowers @dimizuno did you find any way to automatically set the pipeline the permissions?

@ChrisF987-coles yes I did!
You can use the Update Pipeline Permissions For Resource endpoint.
I used it like:
...

create_secure_file_endpoint="https://dev.azure.com/$org/$project/_apis/distributedtask/securefiles?api-version=5.0-preview.1&name=$secure_file_name"

create_secure_file_response=$(curl -s -X POST -u "$PAT_USER:$PAT_SECRET" -H "Content-Type: application/octet-stream" --data-binary @$NEW_KEY_FILEPATH "$create_secure_file_endpoint")

new_secure_file_id=$(echo $create_secure_file_response | jq '.id' | tr -d '"')

update_secure_file_permissions_endpoint="https://dev.azure.com/$org/$project/_apis/pipelines/pipelinepermissions/securefile/$new_secure_file_id?api-version=7.0-preview.1"

curl -X PATCH \
  -u "$PAT_USER:$PAT_SECRET" \
  -H 'Content-Type: application/json' \
  --data-raw '{
      "allPipelines": {
        "authorized": true
      }
    }' \
  "$update_secure_file_permissions_endpoint"

I hope that helps!

Yep that helps! Thanks very much @bgowers

As there is still no documentation or something else - I'll share my current approach.
Background
As soon as a file changes, Terraform will trigger the powershell script to update the file (id_rsa)
id_rsa is used for SSH-Plugin
Code
# create a secure file in Azure DevOps
# This script will upload the file id_rsa to Azure DevOps SecureFiles
# If the file already exists, it will delete the file and upload the new file

$base64AuthInfo=[Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "",(Get-Item Env:AZDO_PERSONAL_ACCESS_TOKEN).Value)))
$uploadSecureFileURI="https://dev.azure.com/$((Get-Item Env:ORGANIZATION).Value)/$((Get-Item Env:PROJECT).Value)/_apis/distributedtask/securefiles?api-version=5.0-preview.1"
$headers = @{
    Authorization=("Basic {0}" -f $base64AuthInfo)
}

Write-OutPut "Checking if secure file already exists..."
$response = Invoke-RestMethod -Uri $uploadSecureFileURI -Method Get -Headers $headers

# No files in SecureFiles
if ($response.count -eq 0) {
    Write-OutPut "No files in SecureFiles uploading"
    Invoke-RestMethod -Uri "$uploadSecureFileURI&name=id_rsa" -Method Post -ContentType "application/octet-stream" -Headers $headers -InFile "id_rsa"
}
# Files in SecureFiles
else {
    # Check if file already exists - delete and upload
    Write-OutPut "Deleting and uploading file"
    if ($response.Value.name -eq "id_rsa") {
        $deleteitemid = $filteredId = $response.Value | Where-Object { $_.name -eq "id_rsa" } | Select-Object -ExpandProperty id
        $deleteSecureFileURI="https://dev.azure.com/$((Get-Item Env:ORGANIZATION).Value)/$((Get-Item Env:PROJECT).Value)/_apis/distributedtask/securefiles/$($deleteitemid)?api-version=5.0-preview.1"
        Invoke-RestMethod -Uri $deleteSecureFileURI -Method Delete -Headers $headers
        Invoke-RestMethod -Uri "$uploadSecureFileURI&name=id_rsa" -Method Post -ContentType "application/octet-stream" -Headers $headers -InFile "id_rsa"
    }
    # If no file with the name id_rsa exists
    else {
        Write-OutPut "File not found in SecureFiles uploading"
        Invoke-RestMethod -Uri "$uploadSecureFileURI&name=id_rsa" -Method Post -ContentType "application/octet-stream" -Headers $headers -InFile "id_rsa"
    }
}

Not the best solution but for updating a file on demand - it fits ;-)


Fix sample Redis

ReferenceError: redis is not defined

This seems like the exact same thing.  Why would it work and not the original?

@caiobrentano ReferenceError: redis is not defined in

Hi @ilyar. I think you tagged the wrong person! :)

Oh, I see.  OK LGTM, thanks!


Update post to 0.5.6

Motivation
Integration of fix for #4296
Changes
Integration of fix
Test Plan
n/a
TODO

[x] Explain motivation or link existing issue(s)
[x] Test changes and document test plan
[x] Update documentation as needed

DevOps Notes

[x] This PR does not require configuration changes (e.g., environment variables, GitHub secrets, VM resources)
[x] This PR does not affect public APIs
[x] This PR does not rely on a new version of external services (PoET, elasticsearch, etc.)
[x] This PR does not make changes to log messages (which monitoring infrastructure may rely on)

bors try

bors merge


Inability to order the property with a [JsonExtensionData] tag

Source type
public class Example
{
    [JsonProperty(Order = 1)]
    [JsonExtensionData]
    public JObject First { get; set; }

    [JsonProperty(Order = 2)]
    public string Second { get; set; }
}

Destination JSON
{
    "second": "blah blah",
    "first": {
        "name": "value"
    }
}

Expected behavior
I want to be able to order the properties, i.e.:
{
    "first": {
        "name": "value"
    },
    "second": "blah blah"
}

It seems that [JsonProperty(Order = x)] does not apply to a property marked with JsonExtensionData.
Related: https://stackoverflow.com/questions/57495387/how-to-order-properties-with-json-net-if-a-class-has-jsonextensiondata

Extension data is always last. JsonProperty doesn't have an effect because extension data isn't serialized as a property. It is its own separate thing.


Remove BaseXMLFeedSpider

#359

I think we can extract parse_json_lines and parse_zipfile methods into a new ZipSpider class, since only some specific spiders use them, what you think @jpmckinney?

Hmm, up to you!


[BUG]: Agent does not support preview versions of Microsoft.VisualStudio.Product.BuildTools

What happened?
We deployed a preview version of the Visual Studio Build Tools (17.10.0-preview2) on our build server.
When setting up a new agent, the expected Visual Studio system capabilities for VS are not set.
(MSBuild_17.0, MSBuild_17.0_x64, VisualStudio, VisualStudio_17.0, VisualStudio_IDE, VisualStudio_IDE_17.0)
We traced it down to the VisualStudioFunctions.ps1 file that does not search for the prerelease versions of the BuildTools, only for the real Visual Studio editions.
Please add logic to the agents to support the preview versions of the Build Tools.
When adding " -prerelease" to the vswhere.exe line in the VisualStudioFunctions.ps1 script, the agent works properly.
https://github.com/microsoft/azure-pipelines-agent/blob/db013b8f5114bf4fbc5008a23a90e17325fe04ce/src/Misc/layoutbin/powershell/CapabilityHelpers/VisualStudioFunctions.ps1#L41
Versions
Reproduced in 3.225.3, confirmed in the sources the issue still exists
Environment type (Please select at least one enviroment where you face this issue)

[X] Self-Hosted
[ ] Microsoft Hosted
[ ] VMSS Pool
[ ] Container

Azure DevOps Server type
Azure DevOps Server (Please specify exact version in the textbox below)
Azure DevOps Server Version (if applicable)
Azure DevOps Server 2022 Update 1
Operation system
Windows 10
Version controll system
Git
Relevant log output
No response

Additionally, is there any documentation on how to set the IncludePrereleaseVersions flag?
Is this supposed to be set as a system variable?
   if($env:IncludePrereleaseVersions -eq $true)
    {
        $preReleaseFlag = "-prerelease"
    }

@Nico-1987, could you set environment variable IncludePrereleaseVersions before execution?
Example:
$env:IncludePrereleaseVersions = $true
# Execute necessary script that uses IncludePrereleaseVersions variable

@Nico-1987, could you set environment variable IncludePrereleaseVersions before execution?
Example:
$env:IncludePrereleaseVersions = $true
# Execute necessary script that uses IncludePrereleaseVersions variable

Yes i have tried that.
If you look at the script you can see the Preview flag is only used for the Enterprise lookup, not for the build scripts.
I think you need to add the $preReleaseFlag into line 41, to ensure its actually used

@Nico-1987, I've created a PR with adding -prerelease flag to lookup vsbuildtools.
The environment variable $env:IncludePrereleaseVersions is set in PowerShellCapabilitiesProvider.cs by enabling an agent knob EnableVSPreReleaseVersions therefore to lookup for prerelease version, you can set $env:ENABLE_VS_PRERELEASE_VERSIONS to $true

Looks good, thanks

The agent with this change is now available for use.


Feature Request - alarm for a specific time

Firstly, thank you for this - it has removed a bunch of crud that was cobbled together and was unreliable.
Feature Request:
Use Case:
Often, I am managing my time WFH and need to down tools at a particular time for a meeting, or to collect family members etc.
Feature Ask:
A method where a timer for a particular time can be set, so that I don't have to figure out how many minutes away it is.
eg:
alarm @230pm

Thank you for the feature request. I’ve been thinking on this, and ultimately I think I’m not going to add it.
macOS Ventura adds the Clock app which has Shortcuts support. Since there’s a shortcuts command-line tool, it’s now possible to replicate the timer functionality plus add alarms! A few things are lost, like pomodoros or only showing minutes, but I can live with the tradeoff.
This app exists mostly so I can interface with it via Alfred, so when I update the workflow I’ll deprecate this.


Connecting my EHR to azure FHIR API

If we have an EHR deployed on my premises, can we make azure API on top of that exposing my EHR's data via azure FHIR api that is hosted on azure?
Is this possible? or is this a legitimate usecase?

Hi @leo9223, I don't think there is a simple answer. You should checkout https://github.com/microsoft/health-architectures or other resources for architecting in a cloud-based FHIR Server. The FHIR Server for Azure stores data locally by default, so it might be possible to synchronize or use it as an HIE.
If you're looking for a facade that implements the FHIR API over an existing datastore, this would technically be possible, but it would be a non-trivial amount of work, and not something our team directly can provide support for.

Alright thank you.

This is a very misunderstood concept.
Microsoft Azure FHIR is neither a “Plain Server” (hapi fhir language) nor a “Façade” (vonk language)
The below links describe some other options.
https://hapifhir.io/hapi-fhir/docs/server_plain/introduction.html
https://fire.ly/products/fhir-facade/
Also:
And (@brendankowitz / others), (and if I recall a conversation / demo at HL7 Dev Days (in person) at the Microsoft campus ) Microsoft Azure FHIR pulls out "all the bells and whistles" to write HIGHLY PERFORMANT CODE against Microsoft Sql Server (you see a lot of CTE's in profiler) and/or CosmosDB.
While it is coded against interfaces for the data layer, it would be a HUGE undertaking to change to a different RDBMS and get anywhere close to the performance that (this) team has achieved with Microsoft Sql Server/CosmosDB.
Aka, it is not coded against an "ORM" or in some super generic way, because you would never get the performance via an ORM that (this) team has implemented.


[ADLA] Manage using Python SDK - typo correction

Fixed a typo: 'adls' to 'adla'

@matt1883,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

#sign-off

@matt1883 : Thanks for your contribution to the Azure documentation! The author, @matt1883, has been notified to review your proposed change.

Microsoft authors of articles need to make updates through the private repository so the updates can be staged and validated by the current validation rules. After you review staging and fix all validation issues, you can add the sign-off comment to let the PR reviewers know the updates are ready to be merged.
It's easy to access the private repo version of your articles in GitHub. Just add -pr to the URL, as follows:
Public repo URL: https://github.com/Microsoft/azure-docs/blob/master/articles/azure-portal-overview.md
Private repo URL: https://github.com/Microsoft/azure-docs-pr/blob/master/articles/azure-portal-overview.md
We've closed this pull request. Please resubmit the updates through the private repo. If you need perms to the private repo, see the contributor guide instructions

Done.


[REVIEW] Aditya664

GitHub Profile Link
https://github.com/Aditya664

I've previously made a pull request to improve your profile. Thank you. 🙂

Looks good, reviewed on live stream, some suggestions...

too many widgets
very commit heavy, try to do code reviews and raise issues also
broken/missing images


storage node error logs, this happened after i restart my validator node which is used for storage node

ERROR task_executor: Task panic. This is a bug! task_name="pruner" <none> advice="Please check above for a backtrace and notify the developers"

actually, it can be solved by delete the db and network folder then resync from the scratch. but it's really annoying tho

It's probably that your storage node was at a old version. For storage node, we upgraded a few times on the testnet and some are not backward compatible. So has to delete the db folder to restart. They were announced in the discord channel.


crash when click 'open in browser' with k8s pod

Describe the bug

To Reproduce
No response
Expected behavior
No response
Diagnostic report (required)
OrbStack info:
Version: 0.17.1 (170100)
Commit: 542d71ebea7b190bb932c1cc60c5a0d6f2fc89e4 (v0.17.1)
System info:
macOS: 13.5.1 (22G90)
CPU: arm64, 12 cores
CPU model: Apple M2 Max
Full report: https://orbstack.dev/_admin/diag/orbstack-diagreport_2023-09-01T06-22-56.065939Z.zip

Screenshots and additional context (optional)
No response

Fixed for the next version.
Also, you have to use the Kubernetes Pods tab for this. The raw underlying containers don't have an IP, domain, or network — pods do.

Released in v0.17.2.


16b OOP: Statements

You've seen, in OOP: Expressions, how OOP can help us simplify our code so that we don't need lots of if-else statements to handle different expression types.
Let's extend those benefits to statements, starting with a Stmt parent class:
https://github.com/nyjc-computing/pseudo/blob/3e652633ef91caaa2f3f7f2aa96cb6f7515a4c49/lang.py#L130-L141
A Stmt class has a verify() method for resolving, and an execute() method for interpreting.

And we add subclasses for each unique type of Stmt, remembering that not every keyword needs its own unique Stmt type.
Output & Input
https://github.com/nyjc-computing/pseudo/blob/e0b35113a47cb56c85981f22a0b0ae60dbec0a0a/lang.py#L145-L149
https://github.com/nyjc-computing/pseudo/blob/e0b35113a47cb56c85981f22a0b0ae60dbec0a0a/lang.py#L159-L163
Declare
https://github.com/nyjc-computing/pseudo/blob/e0b35113a47cb56c85981f22a0b0ae60dbec0a0a/lang.py#L173-L178
Assign
https://github.com/nyjc-computing/pseudo/blob/e0b35113a47cb56c85981f22a0b0ae60dbec0a0a/lang.py#L188-L193
Conditional (CASE, IF)
https://github.com/nyjc-computing/pseudo/blob/e0b35113a47cb56c85981f22a0b0ae60dbec0a0a/lang.py#L203-L209
Loop (WHILE, REPEAT, FOR)
https://github.com/nyjc-computing/pseudo/blob/e0b35113a47cb56c85981f22a0b0ae60dbec0a0a/lang.py#L219-L225
Callable (PROCEDURE, FUNCTION)
https://github.com/nyjc-computing/pseudo/blob/e0b35113a47cb56c85981f22a0b0ae60dbec0a0a/lang.py#L235-L243
Return
https://github.com/nyjc-computing/pseudo/blob/e0b35113a47cb56c85981f22a0b0ae60dbec0a0a/lang.py#L253-L263
FIle (OPENFILE, READFILE, WRITEFILE, CLOSEFILE)
https://github.com/nyjc-computing/pseudo/blob/e0b35113a47cb56c85981f22a0b0ae60dbec0a0a/lang.py#L267-L274
Each Stmt subclass still has a rule attribute, since some Stmts can be executed in a number of different ways following different rules (i.e. Conditional, Loop, Callable, File).

Parsing Stmts
Now we use them in the parser: [3f3013b08b84a1c86eb086f29eebc863a664e000]
Result:
> /home/runner/pseudo/main.py(24)main()
-> statements, frame = resolver.inspect(statements)
(Pdb) for statement in statements: print(statement)
Declare('declare', Name('Number'), {'line': 1, 'col': 17, 'type': 'name', 'word': 'INTEGER', 'value': None})
Declare('declare', Name('Max'), {'line': 2, 'col': 14, 'type': 'name', 'word': 'INTEGER', 'value': None})
Assign('assign', Name('Number'), Literal('INTEGER', 0))
Assign('assign', Name('Max'), Literal('INTEGER', 10))
File('file', 'open', Literal('STRING', 'data.txt'), {'line': 5, 'col': 24, 'type': 'keyword', 'word': 'WRITE', 'value': None}, None)
Loop('while', None, Binary(Get(<object object at 0x7f0a11740e80>, Name('Number')), <function lte at 0x7f0a11577040>, Get(<object object at 0x7f0a11740e80>, Name('Max'))), [File('file', 'write', Literal('STRING', 'data.txt'), None, Get(<object object at 0x7f0a11740e80>, Name('Number'))), Assign('assign', Name('Number'), Binary(Get(<object object at 0x7f0a11740e80>, Name('Number')), <function add at 0x7f0a11572b80>, Literal('INTEGER', 1)))])
File('file', 'close', Literal('STRING', 'data.txt'), None, None)

Let's use this chance to try to remove tokens from our Exprs and Stmts as much as possible; we'll have to figure out some other way to attach tokens for error reporting (and our backlog for refactoring grows ...)
The changes: [534d8979e3463a2700333bfc1ceea84de80b1d09]
Result:
Declare('declare', Name('Number'), 'INTEGER')
Declare('declare', Name('Max'), 'INTEGER')
Assign('assign', Name('Number'), Literal('INTEGER', 0))
Assign('assign', Name('Max'), Literal('INTEGER', 10))
File('file', 'open', Literal('STRING', 'data.txt'), 'WRITE', None)
Loop('while', None, Binary(Get(<object object at 0x7ff280ff3e80>, Name('Number')), <function lte at 0x7ff280e2a040>, Get(<object object at 0x7ff280ff3e80>, Name('Max'))), [File('file', 'write', Literal('STRING', 'data.txt'), None, Get(<object object at 0x7ff280ff3e80>, Name('Number'))), Assign('assign', Name('Number'), Binary(Get(<object object at 0x7ff280ff3e80>, Name('Number')), <function add at 0x7ff280e25b80>, Literal('INTEGER', 1)))])
File('file', 'close', Literal('STRING', 'data.txt'), None, None)

That's marginally more readable!

Resolving Stmts
On to the resolver! Something we left out from the previous chapter: removing resolve(): [282cca8b6f6ddcebc13e8b764e3aa53b13ed744f]
Let's replace those verify() calls with Stmt.verify() method calls: [51c95ff4b349fca02b548bbc96707b10bf850f8e]
Our Stmts don't have keys, so it's time to convert all those keys to attributes: [e15cbaacd063d408d6cef1a7fffd0af5de6a1afd]

And then it's time to move the code from the statement verifiers into the Stmt.verify() methods.
Let's look at the first couple of verifiers:
https://github.com/nyjc-computing/pseudo/blob/e15cbaacd063d408d6cef1a7fffd0af5de6a1afd/resolver.py#L34-L43
verifyOutput() looks simple enough. But verifyInput() ... oh boy, I am not looking forward to importing LogicError into lang.py 😣 and what happens when we get to verifyProcedure()?!
There has got to be a cleaner solution than this. Ideally we'd do all our imports in resolver.py, and somehow enable our resolver to "visit" each statement and verify/resolve whatever statements/expressions there are

Visiting statements
For a statement to be visitable, it needs to have an accept() method that takes a visitor:

And now we refactor the verify() and verifyStmts() functions, choosing a visitor for each Stmt based on its rule attribute: [65e6a9c0dfab2f46db06d48a780bc834ed62c8e6]

Let's do the same with the interpreter as well:
https://github.com/nyjc-computing/pseudo/blob/d84c9d0d59dd3b2e9730d5c820e601cdffd99803/interpreter.py#L124-L150
https://github.com/nyjc-computing/pseudo/blob/d84c9d0d59dd3b2e9730d5c820e601cdffd99803/interpreter.py#L8-L12
We're jumping ahead of ourselves a little here; we haven't even changed the evaluate() function calls to method calls yet. But it's hard to resist when the Visitor pattern makes it so easy to have different (function) handlers work with an object.

Cleanup
Since Stmt won't ever need its execute() method again, having gained an accept() method for the Visitor pattern, let's go ahead and remove it: [55f411e582840917d162ce4d22ff04761b1293ae]

Bugfix
Test code:
DECLARE Number : INTEGER
DECLARE Max : INTEGER
OPENFILE "data.txt" FOR WRITE
FOR Number <- 0 TO 10
    WRITEFILE "data.txt", Number
ENDFOR
CLOSEFILE "data.txt"

Result:
[Line 6] ENDFOR
               ^
'\n': Expected at end of FOR

This is coming from forStmt() in parser.py since it's happening while parsing a statement:
https://github.com/nyjc-computing/pseudo/blob/d05c80129fff52779645df7ce82eac3bb112b460/parser.py#L269-L272
Okay so it's actually expecting an ENDFOR and not finding one (because it got swallowed by match() on line 269. That's a misleading error message ... we'll fix them next chapter.
Let's go ahead and remove the expect for ENDFOR, and check the other parser functions while we're at it: [ba6f54666d728b6e6becd7069737b67eb78e6f1d]
Since we have simpler ways to construct statements using Stmt, let's use them in forStmt(): [f27c817afa4d7bd44ec363e776dabce98cc01811]
Another bug:
  File "interpreter.py", line 137, in execute
    stmt.accept(frame, execWhile)
  File "lang.py", line 134, in accept
    return visitor(frame, self)
  File "interpreter.py", line 72, in execWhile
    while stmt.cond.evaluate(frame) is True:
  File "lang.py", line 83, in evaluate
    return self.oper(left, right)
  File "builtin.py", line 55, in lte
    return x <= y
TypeError: '<=' not supported between instances of 'Name' and 'int'

Looks like stmt.cond is not evaluating properly. Putting a breakpoint there:
> interpreter.py(73)execWhile()
-> while stmt.cond.evaluate(frame) is True:
(Pdb) stmt.cond
Binary(Name(Name('Number')), <function lte at 0x7fbffad00040>, Literal('INTEGER', 10))

Looks like our Binary's left is a Name(Name()) instead of a Get(Name()) ... sounds familiar! The frame's not getting inserted, because frame=None leads makeExpr() to think it's a Name Expr instead of a Get:
https://github.com/nyjc-computing/pseudo/blob/7942113e20b74f3ba7b6bc32dbdb6f1939cea72b/parser.py#L32-L36
So we use our builtin NULL: [ada2f57ec4f932ecfb47f145dc24aa2e4403b35d]
And now it's working 😌

Testing procedures
We made quite a few changes to procedures and functions. Let's test them, starting with procedures.
Test code:
PROCEDURE WriteNumber(Start : INTEGER, End : INTEGER)
    DECLARE Number : INTEGER
    OPENFILE "data.txt" FOR WRITE
    FOR Number <- Start TO End
        WRITEFILE "data.txt", Number
    ENDFOR
    CLOSEFILE "data.txt"
ENDPROCEDURE

WriteNumber(1, 10)

Result:
[Line 10] WriteNumber(1, 10)
                     ^
'(': Expected after name

That's a misleading error message: we tried to call a procedure without CALL. Oh well. Error messages will be looked at in a later chapter.
We have other issues to resolve: [e7f1dc9db685204c30268409917ae8b04666c4ad]
Here, I tried to have verifyDeclare() handle var (which is still a dict representing a parameter), while it's expecting a Stmt. Guess we'll have to unpack that for now and rethink it.

Other errors:
  File "resolver.py", line 87, in verifyProcedure
    verifyStmts(local, stmt.stmts)
  File "resolver.py", line 32, in verifyStmts
    stmt.accept(frame, verify)
  File "lang.py", line 134, in accept
    return visitor(frame, self)
  File "resolver.py", line 203, in verify
    stmt.accept(frame, verifyWhile)
  File "lang.py", line 134, in accept
    return visitor(frame, self)
  File "resolver.py", line 68, in verifyWhile
    stmt.init.accept(frame, verify)
  File "lang.py", line 134, in accept
    return visitor(frame, self)
  File "resolver.py", line 197, in verify
    stmt.accept(frame, verifyAssign)
  File "lang.py", line 134, in accept
    return visitor(frame, self)
  File "resolver.py", line 51, in verifyAssign
    expectTypeElseError(frame, stmt.expr, frame[name]['type'])
  File "resolver.py", line 11, in expectTypeElseError
    exprtype = expr.resolve(frame)
  File "lang.py", line 97, in resolve
    slot = self.frame[name]
KeyError: 'Start'

One drawback of the visitor pattern is you have deeper function stacks when debugging. Not really an issue unless you're writing a book I guess. Here, the procedure parameters don't seem to be declared in the local frame properly, or the resolution isn't working. Let's find out by putting breakpoints in verifyProcedure():
> resolver.py(77)verifyProcedure()
-> for var in stmt.params:
(Pdb) stmt.params
[{'name': Name('Start'), 'type': 'INTEGER'}, {'name': Name('End'), 'type': 'INTEGER'}]

Those are our two vars.
> resolver.py(78)verifyProcedure()
-> if stmt.passby == 'BYREF':
(Pdb) stmt.passby
{'line': None, 'col': None, 'type': 'keyword', 'word': 'BYVALUE', 'value': None}

Oops, we forgot to unpack the passby token in parser. Let's do that: [e43079601d5b567aae279f99495fdf902578b38f]
Spotted the problem: we declared the vars in frame, not local (line 84):
https://github.com/nyjc-computing/pseudo/blob/e43079601d5b567aae279f99495fdf902578b38f/resolver.py#L76-L84
Fix: [41bbc511bc64a0952b49e4fab362761f25e24ad9]
Fortunately it's an easy fix: [41bbc511bc64a0952b49e4fab362761f25e24ad9]
And a couple issues in lang.py to fix: [eb41c238860df9b158e2bccbdb7318bee27f6df6], [15cd81ac62dcafbaa5cf3512e8b0913e029d805d]
Inspecting our handiwork:
> resolver.py(87)verifyProcedure()
-> verifyStmts(local, stmt.stmts)
(Pdb) local
{'Start': {'type': 'INTEGER', 'value': None}, 'End': {'type': 'INTEGER', 'value': None}}


Admin page – New concepts page, Category list narrows down as you type

The Category list on the New Concepts page currently selects one category as you type - it should instead, narrow the displayed list to mach the text you have imput, on the fly
As a an F&E admin user
I want to have the possible categories available for me to select, narrow down as I type text into the box
in order to if I only know the start of a category's title I can quickly and easily navigate to it
Scenarios
Scenario 1 - List narrows down
Given That I am an F&E admin user and I am logged in
And I am on the New Concepts page
When type 'School' into the 'Category' free text box
Then the list below it is reduced to only display those categories that start with 'School'.


Add DDL for log_dataset_instance_load_status

Fix #1041

Codecov Report

Merging #1054 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1054   +/-   ##
=======================================
  Coverage   30.47%   30.47%
=======================================
  Files         178      178
  Lines        4647     4647
  Branches     1231     1231
=======================================
  Hits         1416     1416
  Misses       3231     3231

Continue to review full report at Codecov.

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

Coverage remained the same at 26.82% when pulling 5ff5a058fad66e67b02ceacc7bef04a6d9ad2437 on alyiwang:master into 53708482d1f6eb51d0d212258fdd7e0edae70898 on linkedin:master.


Building docs using nbsphinx

Switched to using nbsphinx to build our docs.

Closing for now, while nbsphinx is nice but is not as flexible as a directive.


how to pass data from a class (screen/page) to instance of another?

how to pass data from a class (screen/page) to instance of another?
something as:
QRoute(path: '/book/:id((^[0-9]\$))', builder: (Map data) => const BookDetailsScreen(data.book))

QR.to('/book/${state[item].id}', data: {book: BookModel(id: '1', title: 'Kindred', author: 'Octavia E. Butler')})

Please take a look at this issue #18

QRoute(path: '/book/:id((^[0-9]\$))', builder: () {
  QR.params['book']!.keepAlive = false;
  return BookDetailsPage(book: QR.params['book']!.valueAs<BookModel>());
})

QR.params.ensureExist('book', initValue: state[item], keepAlive: true);
QR.to('/book/${state[item].id}');


I have installed it, and then what?

How can I execute/go to the shell?

After installing, first force-quit the app to clear pythonista's module cache.
For launching StaSh, use the launch_stash.py file in pythonista's This iPhone directory.


fix(region): Fix that 'Can_delete' disappears due to parameter structuring

这个 PR 实现什么功能/修复什么问题:
因为参数结构化导致的‘can_delete‘的消失
是否需要 backport 到之前的 release 分支:

release/2.13
release/2.14
release/3.0

/area region

/cc @swordqiu

Codecov Report

Merging #4592 into master will decrease coverage by 0.03%.
The diff coverage is 0%.

@@            Coverage Diff            @@
##           master   #4592      +/-   ##
=========================================
- Coverage    6.86%   6.82%   -0.04%
=========================================
  Files         523     522       -1
  Lines       88745   88700      -45
=========================================
- Hits         6090    6052      -38
+ Misses      82149   82143       -6
+ Partials      506     505       -1

Flag
Coverage Δ

#aFlag
6.82% <0%> (-0.04%)
:arrow_down:

Impacted Files
Coverage Δ

pkg/compute/models/groups.go
5.14% <0%> (-0.03%)
:arrow_down:

pkg/util/httputils/httputils.go
39.91% <0%> (-4.01%)
:arrow_down:

pkg/multicloud/ucloud/ufile.go
0% <0%> (ø)
:arrow_up:

pkg/util/netutils2/netutils.go
24.06% <0%> (ø)
:arrow_up:

pkg/util/httputils/delegate.go

pkg/appsrv/response.go
69.23% <0%> (+3.07%)
:arrow_up:

Continue to review full report at Codecov.

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


Image stutters when frame rates are between 1:2hz and 1:1hz.

Image stutters when frame rates are between 1:2hz and 1:1hz. First noted by TommyVR https://discord.com/channels/933220354401398785/950124402337525840/1062066968561201182
Pitool 0.280
PimaxXR 0.3.0
Appears to Occur in all non-OpenXR games such as DCS, Subnautica, and Dirt Rally 2
It does not appear to occur in MSFS or Bonelab.

I have the same problem. Massive stuttering when the screen refresh are below setting in options. I tested any pitool version from 271 to  284. PimaxXR 0.30

I tested with PimaxXR runtime 0.32 the problem still existing.

I hope will be the little bit chance to resolve the problem because PimaxXR runtime in the ver 2.8 don't have THIS problem. Works good if refresh rate of game is below then Pitool setup [120/90/72Hz]. I'm not using any pitool fichers like Smart Smoothing or Hidden Area Mask. I checked PimaxXR runtime 3.0 - 3.2 in the Asseto Corsa; Asseto Corsa Competizione; AMS2; Project Cars 2.
I try to record video file and share you to see what is going on.
In the other case PimaxXR Runtime 2.8 is incompatible with OpenXR Toolkit in this games. When I try to run any game then I have a crash on start.
Using: RTX 3090ti on 528.49 DCH display driver with Pimax Artistan 2.0
Maybe it's the time to check any different standard gaming NV driver.

Tearing [120Hz : 90Hz in game] and no tearing mp4 videos [90Hz : 110Hz in game].
https://mega.nz/file/h14GwbqC#JDHV71DaubCm_EoMe_FXIKWDImgm2tmWdMHOdDw3mC8
https://mega.nz/file/4oARHTrS#UrJXWj_uTXo9izdo39bAdIdLP-O_5dutnsDGZ-7Cq9s

This is a useful observation, however 0.2.8 did a lot of things wrong for OpenXR apps.
0.3.0 and above are doing the proper implementation of OpenXR standard for frame management.
It's unfortunate that the proper way breaks with OpenComposite, but the project is called PimaxXR, not PimaxComposite. Between MSFS, Bonelab etc being broken, and fake OpenXR apps like AMS2, ACC etc being broken, my choice is quick :)
I will take a look at somehow allowing both 0.2.8 behavior and 0.3.0 behavior in the same version, but I already know doing this will break Smart Smoothing.
Unfortunately they're are many issues with the underlying Pimax software, and I need to choose to fix one scenario or the other. As mentioned above, solving the problem for fake OpenXR apps isn't my priority.

I've received feedback that PimaxXR 0.3.4 + Pimax Client 1.10 works fine with no stuttering under those conditions. Closing, please comment back here if that combination does not work for you.


CLI?

Is there a CLI for this library, so I can use it in a npm script?

https://www.npmjs.com/package/ffgen


Agent stuck doing nothing

Not sure which logs/files to check on but running on Windows 11 current versioning (3/28/24 @ 9PM ET) the agent appears to get stuck after browsing a few pages or after having setup some project files. It then sits there saying, "writing code" but there's no update to the database file or project files happening at all.

Same issue here.

it Just happend in Windows 10 to me...
Ubuntu works fine....

Thank you for opening this issue, fixed here: https://github.com/stitionai/devika/commit/6b32459898c0515de1ba15b2d0ef760a588396da! 🙌


Fix drop capabilities fixpath

fix in fixpath of rule drop-capability-netraw
will now add as an element of the list: securityContext.capabilities.drop
will add to the end of the list if already exists.

will fix issues #191 and #993 in Kubescape


Add support for multiple outputs and chances

It will be very cool if the extruder can generate more than one single item at a time, and even cooler if that output supports .withChance() so modpacks creators can modify even more the recipes that this blocks give.
Thank you!

The result does support "count" as I've been using it to crank up the drop rates to 4 - needed to find a way to make people stop creating giant cobblestone generators!


PR to generate 3.7.0 release

Description
PR to generate 3.7.0 release (which is based on the code that was merged in https://github.com/terraform-ibm-modules/terraform-ibm-landing-zone/pull/423) (See Release notes content below)
Also removed ssh_public_key from roks DA - there were duplicate entries and we want it hidden, not required.
Types of changes in this PR
No release required

[ ] Examples or tests (addition or updates of examples or tests)
[ ] Documentation update
[ ] CI-related update (pipeline, etc.)
[ ] Other changes that don't affect Terraform code

Release required

[ ] Bug fix (patch release (x.x.X): Change that fixes an issue and is compatible with earlier versions)
[x] New feature (minor release (x.X.x): Change that adds functionality and is compatible with earlier versions)
[ ] Breaking change (major release (X.x.x): Change that is likely incompatible with previous versions)

Release notes content
Dependency updates:

terraform-ibm-landing-zone-vpc v6.0.1 -> v7.0.1
Required IBM terraform provider is now >= 1.52.0

Update actions:
Consumers using override.json and looking to update to this version need to:

modify their JSON to remove use_manual_address_prefixes from the vpcs array, as this was removed in terraform-ibm-landing-zone-vpc 7.x
add an address_prefixes map to all of the VPC items in the vpcs array. For example:

"address_prefixes": {
  "zone-1": [],
  "zone-2": [],
  "zone-3": []
}

NB: If address_prefixes is not set, the VPC 7.x module will assume "auto prefix" and attempt to destroy/create the VPC

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

Merge actions for mergers

Merge by using "Squash and merge".

Use a relevant conventional commit message that is based on the PR contents and any release notes provided by the PR author.
The commit message determines whether a new version of the module is needed, and if so, which semver increment to use (major, minor, or patch).

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

GitHub release
v3.7.0

Your semantic-release bot :package::rocket:


Added Decimal to Fraction Conversion page

to convert any non negative decimal to a fraction

@EANimesha I have labeled your PR as Hacktoberfest-accepted, The PR will be merged shortly


CI testing in browsers

using travis' saucelabs plugin

Held up due to https://github.com/karma-runner/karma-sauce-launcher/issues/40.
Perhaps https://github.com/karma-runner/karma-browserstack-launcher would be better? BS don't have a free–for–open–source plan.


How are errors reported?

Message should be shown in red.
In the output window.
Also in a status bar?

Error is indicated in statusbar. Need to show error message in red.


The method 'play' was called on null.

Code:
FluTube(
"https://www.youtube.com/watch?v=aNrqaOAt5P4",
autoPlay: false,
aspectRatio: 16 / 9,
looping: true,
onVideoStart: () {},
onVideoEnd: () {},
)
Get this error:
The following NoSuchMethodError was thrown while handling a gesture:
The method 'play' was called on null.
Receiver: null
Tried calling: play()
When the exception was thrown, this was the stack:
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
#1      FluTubeState.build.. (package:flutube/src/flutube_player.dart:274:45)
#2      State.setState (package:flutter/src/widgets/framework.dart:1233:30)
#3      FluTubeState.build. (package:flutube/src/flutube_player.dart:273:27)
#4      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:779:14)
...
Handler: "onTap"
Recognizer: TapGestureRecognizer#3f122
debugOwner: GestureDetector
state: ready
won arena
finalPosition: Offset(207.6, 315.4)
finalLocalPosition: Offset(34.9, 31.4)
button: 1
sent tap down

same with me

same with me

Any Update?

same with me

The example app is crashing when we click on the play button.

I switched to "youtube_player_flutter"

Same with me. Would like an update on this

Sorry, for now i don't have time to look into this issue. If anyone wants to help, PRs are welcome :)


Attaching items to a playlist no longer works

APP DETAILS:
VERSION | <IP_ADDRESS>
RELEASE DATE | May 2019
When we create a new playlist:

we can’t link content (URL/document) to the playlist, so it creates a new tile and playlist
A message shows for 2-3 seconds, confirming that the ‘asset has been successfully linked’
when we click the new tile, there is no asset attached

Noticed this around a month ago, thought it was a minor glitch initially, but it's now effecting our ability to update the site effectively.
Please advise what steps we can take to test/resolve.

So, first you need to get to the most recent version of the solution, we are way beyond supporting version 2 of the solution.  For instructions on how to update to the latest version (4.1.3) please see the following documentation: https://github.com/pnp/custom-learning-office-365#updating-the-solution
If you have lots of customizations, I would suggest you back up, the above link tells you about doing a back up and links you to documentation on ways you can back up information.

I'm going to close this due to lack of activity.  If you're still having issues, please feel free to open a new issue and reference this one providing more details.


Why is runtime permissions immediately displayed to the user as soon as my plugin loads

I am trying to ask the user for runtime location permission, I am asking the permission on button click. Here is  my Godot code and here is my android library
As you can see in my Godot code i call getLocation() method of my android library on button press but i don't understand why it shows it immediately as soon as my plugin is loaded. If i don't allow the permission and click in the button then as expected my location permission is again asked but i cannot understand why it is asked immediately as soon as the plugin loads
Even in my android library code if you check GodotAndroidPlugin class, requestPermissions() is called in getLocation() & getLocation() is only called on button press
I don't face such issue when i try to use it in my native android app.

@kyadalu1 This is expected behavior due to the logic in https://github.com/godotengine/godot/blob/fbaab3cf537a892295aabdfd02c8052e370e6669/platform/android/java/lib/src/org/godotengine/godot/GodotActivity.kt#L70 which automatically requests runtime permissions when the Godot app starts.

This seems like a bad practice to ask for all runtime permissions as soon as the game loads. A user will feel frustrated to see app asking dangerous permissions at the start without knowing what they are used for.
When i go through this, i only see you asking Audio permission, in my case i was asking for location permission. Are all runtime permissions asked at app startup time, of course depending on what i have declared in the AndroidManifest.xml

This seems like a bad practice to ask for all runtime permissions as soon as the game loads. A user will feel frustrated to see app asking dangerous permissions at the start without knowing what they are used for.

@kyadalu1 That behavior is being reverted in https://github.com/godotengine/godot/pull/87080.
I expect the change to land in Godot 4.2.2 and Godot 4.3.

When i go through this, i only see you asking Audio permission, in my case i was asking for location permission. Are all runtime permissions asked at app startup time, of course depending on what i have declared in the AndroidManifest.xml

It's the opposite, the Audio permission is being excluded from the request; the second argument is an exclude list.

Closing since the PR has been merged.

@m4gr3d  Thank you so much for your effort. Really appreciate it. Will this be available only from Godot 4.3?


[governance] Added Contributing and Owners files to repo

Please add Owners and Reviewers to respective files

Closing in favor of #39


Context error when emitting event from "set"

Hello, I've forked a stackblitz from one of the other (solved) issues here.
I was trying to create a very basic example where the "name" property in the "hello" component is emitting an event every time a "set" occurs (so one could keep track of its value in its parent component).
The following is all I changed: ( explanations in comments)
export class HelloComponent  {
  @Output() myClick: EventEmitter<string> = new EventEmitter<string>();
  @Output() setEvent: EventEmitter<string> = new EventEmitter<string>(); // added a second emitter
  component = DynamicComponent;

  private _name: string; // made name private
  @Input() set name(value : string){
    console.log('set name', value, this); // log so you can see the error and context
    this._name = value;
    this.setEvent.emit(value); // emitting the event so the parent component (in this case app component) can listen to it and keep track of the value
  }
  get name(){ return this._name;}

}

I then encounter a very strange phenomenon where "set name()" is run multiple times (without any actual need) with the last of them having an empty context ( this = {} ) thus throwing the following errors:

ERROR TypeError: Cannot read property 'emit' of undefined

ERROR CONTEXT

I should note that I'm specifically interested in the "name" property (that comes via @Input) - the goal is to keep its value synced with the parent in case it changes.
Also I should mention that if you give DynamicComponent a selector and place it directly in your template the issue doesn't occur. I've tested thoroughly seems to be an issue with ngxd.
Could you maybe shed some light on this behaviour? What am I doing wrong?
Thanks :)

Hello! I've seen the bug on a stackblitz link, but I can't repeat it in the tests.
Can you make Pull Request with the failed test? And then I'll fix it asap.

I have this same problem but I'm not sure on reproducing. It happens whatever I try

Hi, @davidhunt135
I'he reproduced it and added pr #24 with test

I published new 9.0.4 version. It should to fix that.
@JeoCo @davidhunt135 @alQlagin Thanks 💖


Importing css is not working on GatsbyJS  in production build

Describe the bug
Importing css from npm package for a gatsbyjs project works in develop, but not on serve
Many simliar issues report in here https://github.com/gatsbyjs/gatsby/issues/19446
Solution:
https://github.com/gatsbyjs/gatsby/issues/19446#issuecomment-553019807
CSS has a side effect: "adding CSS to the DOM". You can't mark it as side-effect-free.  (https://github.com/webpack/webpack/issues/6741#issuecomment-372720641)
Expected behavior
It should be styled in the production build.
How to reproduce
1, Create a gatsbyjs project from a simplest starter
2, Install yet-another-react-lightbox package
3, gatsby build
4, serve in any web server
Screenshots / Logs
No response
Additional context
No response

Unable to reproduce. Please provide a minimal repro.

Not reproduced with the following minimal test.
npm init gatsby

What would you like to call your site?
✔ · gatsby-test
What would you like to name the folder where your site will be created?
✔ Temp/ gatsby-test
✔ Will you be using JavaScript or TypeScript?
· TypeScript
✔ Will you be using a CMS?
· No (or I'll add it later)
✔ Would you like to install a styling system?
· No (or I'll add it later)
✔ Would you like to install additional features with other plugins?No items were selected

cd gatsby-test
npm i yet-another-react-lightbox

// index.tsx
import Lightbox from  "yet-another-react-lightbox";
import "yet-another-react-lightbox/styles.css";

// ...

<Lightbox open />

// ...

npm run build
npm run serve

FWIW, this library already declares *.css files as side effects.


Cleanup the Monolog handler from deprecated features

With this PR I'm going to revert the support of our Monolog handler for setting tags and extras on the events. The reason of this change is that, as discussed multiple times in the past, we don't want to rely on pulling more information than necessary from the unstructured data of the record's context because the same keys may be used by the user for things that have nothing to do with Sentry

This is because it's an highly requested feature, and having a piece of text to point to will be valuable in the future

Absolutely agree, but is this really a thing written in the UPGRADE file or in the official docs?


Add option to wrap lines in browser

It's easier to view pastes with super long lines when viewing the raw paste right now.
https://brpaste.xyz/adCuBQ/raw vs https://brpaste.xyz/adCuBQ

Looks like all that's needed is this CSS rule:
pre[class*="language-"] code[class*="language-"] {
    white-space: pre-wrap;
}

just have to decide if it should be the default (I'm leaning yes, but give it a minute or two :slightly_smiling_face:)


Add codecove & badge

Fixes: #37
It need add $CODECOV_TOKEN  environment variable in circleci

@Qix-
Can you give me some advice?

I'm not really a codecove person, I haven't used it before. @rauchg could a ZEIT-er check the changes? :)

I'm not really a codecove person, I haven't used it before. @rauchg could a ZEIT-er check the changes? :)

thanks for your reply


Regexp does not parse correctly string

Hello.
Version tasks\ReplaceTokens\1.1.29
In files he have the following format of tokens:  @@var@@
Token Regex: @@(\w+)@@
There is a string: '@@CUSTOM_BUILDMAJORNUM@@.@@CUSTOM_BUILDMINORNUM@@.@@CUSTOM_BUILDPATCHNUM@@'
When this task works: it replaces only @@CUSTOM_BUILDMAJORNUM@@ and @@CUSTOM_BUILDPATCHNUM@@, it skips the token in the middle
I checked pattern here https://regex101.com/#javascript  against the live  above and it matches correctly
2016-09-22T10:25:54.6611829Z Starting regex replacement in [package.ps1]
2016-09-22T10:25:54.6767828Z ##[debug]CUSTOM_BUILDMAJORNUM=1
2016-09-22T10:25:54.6767828Z ##[debug]Replaced token [CUSTOM_BUILDMAJORNUM]
2016-09-22T10:25:54.6767828Z ##[debug]CUSTOM_BUILDPATCHNUM=0
2016-09-22T10:25:54.6767828Z ##[debug]Replaced token [CUSTOM_BUILDPATCHNUM]
2016-09-22T10:25:54.6767828Z ##[debug]tokens=undefined
2016-09-22T10:25:54.6767828Z ##[warning]Token [tokens] does not have an environment value
Could you please help?
Thanks

Hi @NikolayKash - I've been able to repro this. I'll revert when I've got a solution.

Hi @NikolayKash I found the bug - I was replacing the values "inline" and this was messing up the while loop for the subsequent "find" operations. Give the new version a go and let me know if this resolves the issue for you!

Hi @colindembovsky. the issue was fixed in 1.1.39.
Thank you!


MSSQL -> MYSQL data import for mssql nvachar.

System information:

Operating system (distribution) and version
Windows 10
DBeaver version
7.2.0 CE
Additional extensions
NA

Connection specification:

Database name and version
MSSQL 17 / MYSQL 8

MYSQL 8

Charset --> utf8mb4
Collation --> utf8mb4_0900_ai_ci

Driver name
Standards
Do you use tunnels or proxies (SSH, SOCKS, etc)?
No

Describe the problem you're observing:
While I am trying to import data from MSSQL to MYSQL, I found the auto schema translation failed to convert MSSQL data type nvarchar with length 0 to MYSQL varchar. It is possible to use varchar(1111) at the first beginning and grow it up by adding 2000 at a time. On the other hand, smalldatetime type in MSSQLshall be automapping to date.
ex. 1111 -> 2111 -> 3111 -> ... -> 16380. Actually, MySQL shall allow varchar(16380) since utfmb4 takes 4 bytes for one Unicode char. Or just map it to text type. Please help check.
Related discussions
1.
https://stackoverflow.com/questions/332798/equivalent-of-varcharmax-in-mysql
2. utf8mb4 is for all Unicodes.
https://stackoverflow.com/questions/30074492/what-is-the-difference-between-utf8mb4-and-utf8-charsets-in-mysql#:~:text=As of MySQL 5.5.,%2C same encoding%2C same length.
Steps to reproduce, if exist:
failed data columns info for MSSQL to MYSQL
Column Name	#	Type	Length	Scale	Precision	Not Null	Identity	Default	Description
ShowMethodNotice	106	nvarchar	0	[NULL]	[NULL]	false	false	[NULL]
Column Name	#	Type	Length	Scale	Precision	Not Null	Identity	Default	Description
Info	209	nvarchar	0	[NULL]	[NULL]	false	false	[NULL]	[NULL]

Include any warning/errors/backtraces from the logs
err-log
SQL Error [1074] [42000]: Column length too big for column 'Info' (max = 16383); use BLOB or TEXT instead
  Column length too big for column 'Info' (max = 16383); use BLOB or TEXT instead
  Column length too big for column 'Info' (max = 16383); use BLOB or TEXT instead

Thank you for the report. As a workaround you can set column type manually in Export wizard (Press Columns in Tables mapping step)

Yep. I am already remapped it manually now. In addition to the original finding, smalldatetime shall be mapped to date from MSSQL to MYSQL.

One more error encountered, the data type ntext in MSSQL shall map to LONGTEXT in MYSQL.

smalldatetime data type in Dbeaver 21.1.2 in the export case from SQLServer to MySQL already turns into a timestamp. https://docs.microsoft.com/en-us/sql/t-sql/data-types/smalldatetime-transact-sql?view=sql-server-ver15
A can't create a table with "nvarchar with length 0", so can't fix it.
And I added better support for data types mapping, containing "text" in these names.

Verified


collect json paths in indexing

Partially implementing https://github.com/quickwit-oss/tantivy/issues/2015 and preparation for https://github.com/quickwit-oss/tantivy/issues/2215
Next step would be to remove the JsonTermWriter and use the same technique in fast field json paths

This PR surely saves memory, but i have no clue what impact on indexing throughput is.
Did you measure that?
(Of course, the next step is to push the ids at a higher level to avoid building the json path construction.)

This PR surely saves memory, but i have no clue what impact on indexing throughput is. Did you measure that?
(Of course, the next step is to push the ids at a higher level to avoid building the json path construction, but you were right to not ship that in that PR.)

I didn't measure a lot, but it seemed relatively unchanged. The extra look-ups seem to be set of by the less copying and faster hash calculation


Bump version numbers in documentation

Some of the documentation still referred to old dependencies, in
particular Java 7 and Dropwizard 0.x. Either removed or bumped these to
refer to current versions.
/cc @ssalinas

Thanks for this, completely forgot we had that section of docs. LGTM


Change Twitter to X

Description
With the recent rebranding of Twitter to X, we need to update all references to Twitter on our homepage. This includes changing the name, icon, and link associated with Twitter to reflect the new branding.
Tasks
Update Name:
    Change all instances of "Twitter" to "X" on the homepage.
    Ensure consistency in all mentions, including tooltips and descriptive texts.

Update Icon:
    Replace the Twitter bird icon with the new X logo.
    Ensure the new icon is appropriately sized and matches the design language of the homepage.

Update Link:
    Update the hyperlink currently pointing to https://twitter.com/ to https://x.com/.
    Verify that the link directs users to the correct X homepage.

Are you willing to work on this yourself ?

yes

Screenshots

@Swarnim114 Let me know if you want to work on this.


Missing module named 'passlib' when using docker compose

Describe the bug
When I run docker compose up, I encountered the following error, any idea how to solve this?
ubuntu@10-11-72-88:~/docker/langflow$ sudo docker compose pull
[+] Pulling 2/0
 ✔ backend Skipped - No image to be pulled                                                                                0.0s
 ✔ frontend Skipped - No image to be pulled                                                                                0.0s
ubuntu@10-11-72-88:~/docker/langflow$ sudo docker compose up
[+] Running 2/0
 ✔ Container langflow-frontend-1  Created                                                                                0.0s
 ✔ Container langflow-backend-1   Created                                                                                0.0s
Attaching to langflow-backend-1, langflow-frontend-1
langflow-backend-1   | INFO:     Will watch for changes in these directories: ['/app']
langflow-backend-1   | INFO:     Uvicorn running on http://<IP_ADDRESS>:7860 (Press CTRL+C to quit)
langflow-backend-1   | INFO:     Started reloader process [1] using WatchFiles
langflow-frontend-1  |
langflow-frontend-1  | ><EMAIL_ADDRESS>dev:docker
langflow-frontend-1  | > vite --host <IP_ADDRESS>
langflow-frontend-1  |
langflow-frontend-1  |
langflow-frontend-1  |
langflow-frontend-1  |   VITE v4.3.9  ready in 1508 ms
langflow-frontend-1  |
langflow-frontend-1  |
langflow-frontend-1  |   ➜  Local:   http://localhost:3000/
langflow-frontend-1  |   ➜  Network: http://<IP_ADDRESS>:3000/
langflow-frontend-1  | Error: The following dependencies are imported but could not be resolved:
langflow-frontend-1  |
langflow-frontend-1  |   @radix-ui/react-form (imported by /home/node/app/src/modals/UserManagementModal/index.tsx)
langflow-frontend-1  |   @radix-ui/react-select (imported by /home/node/app/src/components/ui/select.tsx)
langflow-frontend-1  |
langflow-frontend-1  | Are they installed?
langflow-frontend-1  |     at file:///home/node/app/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:44188:23
langflow-frontend-1  |     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
langflow-frontend-1  |     at async file:///home/node/app/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:43597:38
langflow-frontend-1  |
langflow-backend-1   | Process SpawnProcess-1:
langflow-backend-1   | Traceback (most recent call last):
langflow-backend-1   |   File "/usr/local/lib/python3.10/multiprocessing/process.py", line 314, in _bootstrap
langflow-backend-1   |     self.run()
langflow-backend-1   |   File "/usr/local/lib/python3.10/multiprocessing/process.py", line 108, in run
langflow-backend-1   |     self._target(*self._args, **self._kwargs)
langflow-backend-1   |   File "/usr/local/lib/python3.10/site-packages/uvicorn/_subprocess.py", line 76, in subprocess_started
langflow-backend-1   |     target(sockets=sockets)
langflow-backend-1   |   File "/usr/local/lib/python3.10/site-packages/uvicorn/server.py", line 61, in run
langflow-backend-1   |     return asyncio.run(self.serve(sockets=sockets))
langflow-backend-1   |   File "/usr/local/lib/python3.10/asyncio/runners.py", line 44, in run
langflow-backend-1   |     return loop.run_until_complete(main)
langflow-backend-1   |   File "uvloop/loop.pyx", line 1517, in uvloop.loop.Loop.run_until_complete
langflow-backend-1   |   File "/usr/local/lib/python3.10/site-packages/uvicorn/server.py", line 68, in serve
langflow-backend-1   |     config.load()
langflow-backend-1   |   File "/usr/local/lib/python3.10/site-packages/uvicorn/config.py", line 473, in load
langflow-backend-1   |     self.loaded_app = import_from_string(self.app)
langflow-backend-1   |   File "/usr/local/lib/python3.10/site-packages/uvicorn/importer.py", line 24, in import_from_string
langflow-backend-1   |     raise exc from None
langflow-backend-1   |   File "/usr/local/lib/python3.10/site-packages/uvicorn/importer.py", line 21, in import_from_string
langflow-backend-1   |     module = importlib.import_module(module_str)
langflow-backend-1   |   File "/usr/local/lib/python3.10/importlib/__init__.py", line 126, in import_module
langflow-backend-1   |     return _bootstrap._gcd_import(name[level:], package, level)
langflow-backend-1   |   File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
langflow-backend-1   |   File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
langflow-backend-1   |   File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
langflow-backend-1   |   File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
langflow-backend-1   |   File "<frozen importlib._bootstrap_external>", line 883, in exec_module
langflow-backend-1   |   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
langflow-backend-1   |   File "/app/src/backend/langflow/main.py", line 9, in <module>
langflow-backend-1   |     from langflow.routers import login, users, health
langflow-backend-1   |   File "/app/src/backend/langflow/routers/login.py", line 8, in <module>
langflow-backend-1   |     from langflow.auth.auth import (
langflow-backend-1   |   File "/app/src/backend/langflow/auth/auth.py", line 5, in <module>
langflow-backend-1   |     from passlib.context import CryptContext
langflow-backend-1   | ModuleNotFoundError: No module named 'passlib'

To Reproduce
Steps to reproduce the behavior:

git clone the project
sudo docker compose up

Additional context
Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-78-generic x86_64)

Problem solved by:

shut down the contain by using docker compose down
cleaning up docker image cache by using docker image prune -a -f
reinstall this project by using docker compose up


RPM package warning: legacy directory /var/run

Description
Related issue: #99
During RPM packages installation and removal, these warning show up:
.rpm package install:
[root@alma8 ~]# rpm -i wazuh-indexer-4.9.0-1.x86_64.rpm
warning: %post(wazuh-indexer-4.9.0-1.x86_64) scriptlet failed, exit status 255
[/usr/lib/tmpfiles.d/wazuh-indexer.conf:1] Line references path below legacy directory /var/run/, updating /var/run/wazuh-indexer → /run/wazuh-indexer; please update the tmpfiles.d/ drop-in file accordingly.

.rpm package uninstall:
warning: file /var/run/wazuh-indexer: remove failed: No such file or directory

Tasks

Fix warnings.

We need to update /var/run references to /run in all rpm package related files:
distribution/packages/src/common/systemd/wazuh-indexer.conf
distribution/packages/src/common/systemd/wazuh-indexer.service
distribution/packages/src/common/env/wazuh-indexer
distribution/packages/src/common/scripts/postrm
distribution/packages/src/rpm/init.d/wazuh-indexer

Since the above files mostly pertain to the common build infrastructure, we might need to modify deb related files as well, including:
distribution/packages/src/deb/debmake_install.sh

PR #119 fixes the /var/run related warnings, but we still observe the following when installing:
Running transaction
  Preparing        :                                                                                1/1
  Running scriptlet: wazuh-indexer-4.9.0-1.x86_64                                                                                1/1
  Installing       : wazuh-indexer-4.9.0-1.x86_64                                                                                1/1
  Running scriptlet: wazuh-indexer-4.9.0-1.x86_64                                                                                1/1
warning: %post(wazuh-indexer-4.9.0-1.x86_64) scriptlet failed, exit status 255

Error in POSTIN scriptlet in rpm package wazuh-indexer
  Verifying        : wazuh-indexer-4.9.0-1.x86_64                                                                                1/1

Installed:
  wazuh-indexer-4.9.0-1.x86_64

Complete!

Is coreutils installed?

https://documentation.wazuh.com/current/installation-guide/wazuh-indexer/step-by-step.html#nodes-installation
https://access.redhat.com/solutions/5749321

It seems exit code 255 is originated in a command not found error:
https://www.baeldung.com/linux/status-codes

It seems exit code 255 is originated in a command not found error: https://www.baeldung.com/linux/status-codes

Fixed in 3b4a1f5d45620879ef8840ce009560778c3d29cc


NOISSUE - Add Makefile target to clean old imgs

Signed-off-by: drasko<EMAIL_ADDRESS>Pull request title should be MF-XXX - description or NOISSUE - description where XXX is ID of issue that this PR relate to.
Please review the CONTRIBUTING.md file for detailed contributing guidelines.
What does this do?
Add Makefile target to clean old and ghost docker images and containers.
Which issue(s) does this PR fix/relate to?
Put here Resolves #XXX to auto-close the issue that your PR fixes (if such)
List any changes that modify/break current functionality
Have you included tests for your changes?
Did you document any new/modified functionality?
Notes

@chombium awk uses single $, but $$ is escape sequence in Makefile - otherwise command would not be correct, as Makefile would treat this as a variable.
Regarding the commands you proposed they make sense, and I will try them and incorporate them if they produce indentical results as they are more elegant.

@chombium thanks for advices, looks like it's working and it should be OK now.


Delete config file if user-config is broken

close #101
Also will pop a window to notify the user that the settings file was deleted
I think it's more operational to save via json in the program directory but beyond the scope of this pr

Closing due to iTunesRichPresence no longer being maintained.


Replaced routes with params for local server API calls

Fixes #393
Changes:
Replaced routes with parameters for

wifi_credentials API
auth API
config API

Screenshots for the change:
N/A

@imjog  please resolve conflicts.


"Extracting subtitle tracks and attachments" takes too long

When I open 10-15GB MKV file (I tried different ones) for converting I get stuck at "Extracting subtitle tracks and attachments" for more than 10-15 minutes while HDD constantly reads that file. Is it supposed to be like this?

If your mkv file contains multiple video or audio tracks, the program will pop up a dialog asking you to choose which one you would like to use in your output webm.
I suspect that you might have missed this and it's hidden somewhere. Search your desktop!
If that's not it, please respond again.

Yes, there is a dialog but it pops up after "Indexing..." part (which lasts about 1-2 minutes) and before "Extracting [...]" part.
I select Audio 1 (for example) and then I have to wait like 10-15 minutes staring at "Extracting subtitle tracks and attachments" progress bar until I can proceed to converting.

I guess that can happen if the video file has a lot of attachments. I've never thought it would take up to 15 minutes, though.
I need to think about what I can do to fix this.

Ok, thanks. MKVs I'm trying to convert usually have 2 audio tracks and 2-3 subtitles though.

If you want to work around this issue manually, follow the instructions I've laid out on the wiki.

So basically you suggest to split MKV using another tool before converting video?

Yes. It won't mess with the encoded video/audio data at all, it should just give you a smaller slice to work with.

Oh ok. I'm gonna wait for the proper fix though.

I just released v2.14.0.
It will skip any attachments that are already extracted, and you will be able to see what's taking so much time by using the Details button.
Please tell me if this alleviates your issue.

Ok, I've tried new build.

Found subtitle track #5
Extracting...

It takes 5-6 minutes to extract one subtitle track from MKV file. So demuxing MKV containing 4-5 subtitle tracks can take up to half an hour. Not sure why this happens.
I tried mkvextract and it seems it takes same amount of time. I guess it's not a WebMConverter related issue then.
It would be nice if someone else can confirm this.

I just tried it on a file in the latest version and it took less than 5 seconds to go through the extraction. I have noticed using mkvextract before that some files take longer than others though when I try to extract things out of them. If I had to guess at a reason, I'd say it's searching sequentially through the file's contents and the requested information isn't until the end of the file, which could take a while if the file is large.

Your varying extraction times is because you are extracting different types of extra data.
While attachments are pretty simple, a single block of data that's really just another file, subtitles are spread out in the same packets as audio/video data across the entire file.
It should only extract the subtitles once per input file though.
I guess the alternative would be moving the subtitle extraction process to when you want to add the Subtitle filter. I'll think about it.


Readonly Message not working after 6.4.6 -> 6.6.1 update

I've updated from monaco-languageclient version 6.4.6 to 6.6.1 (and monaco-editor-workers from 0.41.0 to 0.44.0, and monaco-vscode-api automatically via dependency from monaco-languageclient).
I've migrated to providing services via the userServices list and ...getSomethingServiceOverride() syntax with separately installed packages for those that are not included by default.
I'm using Theme, Textmate, Model, and Language service overrides, as I was before with the old syntax.
I'm importing monaco-editor as monaco-editor/esm/vs/editor/editor.api.js due to having the problem described here https://github.com/CodinGame/monaco-vscode-api/issues/162 . But changing it to import just monaco-editor doesn't make the error reappear now, it seems.
I've based the migration on the changes I can see in https://github.com/TypeFox/monaco-languageclient-ng-example and its dependency in https://github.com/TypeFox/monaco-languageclient/blob/main/packages/examples/src/common/client-commons.ts .
I've installed and imported @codingame/monaco-vscode-json-default-extension and @codingame/monaco-vscode-theme-defaults-default-extension.
I've made the corresponding changes in the webpack configuration, which is now almost identical to the example, except I've added experiments.topLevelAwait: true.
Notably I had to add vscode-oniguruma and vscode-textmate to the list of allowedCommonJsDependencies in angular.json, otherwise I would get a ton of build errors about not being able to resolve the localizeWithPath method from nls.js (even though it was clearly there).
Everything I've tested seems to work, except the readonlyMessage popup/overlay at the mouse when the user tries to edit an editor set to readonly. It still locks the editor, but the message doesn't appear.
I've checked that it isn't inserted but invisible due to missing styles. I have the .overflowingContentWidgets div element wherein the message appeared before in a div with class monaco-editor-overlaymessage, but nothing is inserted now.
I don't know if I need to import/initialize more service overrides or something, or if it's a problem with some changes made in monaco-languageclient or monaco-vscode-api.
Any suggestions?

I can add that the readonlyMessage functionality seems to be implemented in node_modules/monaco-editor/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js, and that it doesn't seem to be loaded. If I go back to before I updated, it gets loaded.

I'm unable to reproduce.
If you are really to debug, you can check if _onDidAttemptReadOnlyEdit from ReadOnlyMessageController in monaco-editor/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js is properly called

A bit unlucky that we commented at the same time :)
But since the file isn't even loaded, I'm pretty sure _onDidAttemptReadOnlyEdit isn't being properly called.
What should call it?

It's imported by editor.all.js which is imported by editor.main
The problem is probably that you import editor.api instead of monaco-editor directly (which is now fine)

Thanks! 😃
I can confirm that importing it as just monaco-editor makes the readonly message appear again.
I thought I had tried that, but I guess it was part of making it even build in the first place that I had tried it.


Feature/add google tagmanager connector

Closes #4254
Summary
I created this Google Tag Manager connector by simply taking a copy of the Google Analytics Connector project and changing it to fit the needs of Google Tag Manager.
I had to add the Controller class and the Engine class to the project. These are located in the DNN core for Google Analytics. (But I didn't want to change the core)
SiteAnalytics.config will need to be edited too, with the part from the .config file in this PR.

Nice job, thanks for contributing this, From a quick look it looks about right to me except the 3 notes I left and then I would like to test that build

Thanks. I corrected my mistakes as you suggested.

This is also related to #3155 and if this PR is accepted, we should close that issue as well.  Awesome @skamphuis - I will review the PR as soon as possible.


Merge release 6.20.0

Merging the 6.20.0 release into master

Manually verified the commits came from a Googler - and are already in master.


[Crash]: Clicking on any link after closing large calls window

Before you file a crash report

[X] I have checked the issue tracker and have not found an issue that matches the one I'm filing.
[X] This issue doesn't reproduce on web browsers (such as in Chrome). If it does, issue reports go to the Mattermost Server repository.
[X] I have read the contribution guidelines.

Mattermost Desktop Version
5.3.0 [commit: 595f0ab ]
Operating System
Windows 11 x64
Mattermost Server Version
7.7.1
What type of crash did you experience?
Uncaught exception (I saw a dialog pop up that said "The Mattermost app quit unexpectedly")
Crash report details
Application: Mattermost 5.3.0 [commit: 595f0ab
]
Platform: Windows_NT 10.0.22621 x64
TypeError: Object has been destroyed
    at CallsWidgetWindow.getPopOutWebContentsId (C:\Users\Marvin\AppData\Local\Programs\mattermost-desktop\resources\app.asar\index.js:77152:101)
    at WindowManager.getServerURLFromWebContentsId (C:\Users\Marvin\AppData\Local\Programs\mattermost-desktop\resources\app.asar\index.js:46740:120)
    at EventEmitter._windowOpenHandler (C:\Users\Marvin\AppData\Local\Programs\mattermost-desktop\resources\app.asar\index.js:53024:50)
    at _._callWindowOpenHandler (node:electron/js2c/browser_init:2:78685)
    at EventEmitter.<anonymous> (node:electron/js2c/browser_init:2:83444)
    at EventEmitter.emit (node:events:513:28)

Log Output
No response
Additional Information
This is caused in combination with the mattermost calls plugin and the unwanted pre-release of the 5.3.0 application.
When opening and closing the Large Window for calls (where screensharing happen) and closing that view again. After that clicking on any link (such as settings, system console, or just a link posted in the chat) the posted error occurs and the application needs to restart.
Not sure if this is a bug specific to calls, but since this is related to the new extra windows, I am reporting this here.
I am guessing the object destroyed is that large window.

I just noticed the callstack ending in the calls plugin, so moving it there


Move 1.27 to post-submits cluster temporarily

Issue #, if available:
Description of changes:
Moves 1.27 temporarily to the post-submits cluster where there's more space. This will fail the linter, but I think we should just override that, so that it bugs us next time and we don't forget to move it back.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve


Use Database Pooling

[ ] Use a database pooling library, like Hikari, to pool database connections.
[ ] Parallelize DB calls when we can to avoid hanging the main thread. This is probably less work because I think most long-taking DB would be in the searches, which are already async

Added with #58


ui

updated the UI, mail, content

👷 Deploy Preview for rushlowstudios processing.

Name
Link

🔨 Latest commit
ab0c5bbc984be913841e1d03b4b5a70b66194d42

🔍 Latest deploy log
https://app.netlify.com/sites/rushlowstudios/deploys/674e41bc1490f00008d700f0


Update collaborate-as-team.md

Updated navigation to Allow guest access in teams.

@JohanFreelancer9 Please copy review

Issue#https://github.com/MicrosoftDocs/microsoft-365-docs/issues/6444

@MikePlumleyMSFT Please merge this PR. Thanks


fix: fixed page loading issue.

Related Issue(s): #
#20
Proposed Changes:

Added conditions to not load the page till the state is available.
PR Checklist:

[x] This PR is made against the dev branch (all proposed changes except releases should be against dev, not main).
[x] This PR has no breaking changes.
[x] This PR contains only one commit.
[ ] I have updated or added new tests to cover the changes in this PR.
[x] I have updated the version in package.json to follow the Semantic Versioning guidelines.
[x] All tests are passing.
[x] I have added my changes to the CHANGELOG
or a CHANGELOG entry is not required.
[ ] This PR affects the Source Cooperative Data Proxy,
and I have opened issue/PR #XXX to track the change.

Looks good to me! Thank you for following the PR template!


stream gets blocked by error message

Zulip for android, v27.162
An error message "error loading page" blocks any stream if this link https://floor796.com/ is posted there.
After loading a posted message appears for half a second, then "error loading page" appears.

Hi, @dmig!
This reminds me of #4337; it's an error from the system Chrome on your device. I don't think we've yet landed on a way to protect against the error. One workaround (which I know won't be adequate for all cases) is to remove the message containing the link, or edit the message to remove the link.

Opening this link in system Chrome doesn't show any errors. Seems to me, app may use some custom SSL certificates, which became outdated.
This site uses Let's Encrypt certificate issued on 8.03.2021 -- may be this can give a clue?

This should be fixed in the most recent beta release — let us know if you see this problem after updating! (See #4726 for details)


Make .drop and .idrop mirror .sel and .isel?

Currently, to remove the label 'foo' from dimension x, you write: ds.drop('foo', dim='x').
What if, instead, you could write ds.drop(x='foo'), or to drop the label at integer position 0, ds.idrop(x=0)?
There is a nice potential symmetry here: we could make drop and idrop exactly mirror sel and isel, except that all the selected elements are removed instead. This could include single elements, arrays, boolean arrays and even slice objects.
Thoughts?

I don't think there is demand for this.


HTTP package: need a way to accept bad certificates

This issue was originally filed by<EMAIL_ADDRESS>
I'm trying to read URIs such as http://devblog.paypal.com/feed/ that lead to a bad certificate exception.
Can we add a callback to handle bad certificates in the HTTP package? For .get, .read, etc.?
Simplest reproduce step is: http.read('http://devblog.paypal.com/feed/');

This issue has been moved to dart-lang/http#14.


Note preview does not render spaces around links in headers

Please select the area your bug applies to. (Multiple selections are Possible. You can leave blank if you're not sure.)

[ ] Workspace.  VSCode workspace, vaults, Intellisense/autocomplete, Dendron settings
[ ] Lookup.  Dendron's Lookup Command
[x] Views.  Dendron Preview, Tree View, Side Panels in the UI
[ ] Schema.  Dendron Schemas
[ ] Pod.  Data import from / export to Dendron
[ ] Publish.  External Site Publish
[x] Markdown.  Markdown features, such as syntax support and features

Describe the bug
When a link is inserted in the middle of a header, the Dendron markdown preview does not render any spaces around the link. For example,
Header with a link in it
appears as
Header with alinkin it
To Reproduce
Steps to reproduce the behavior:

Inside a note, try to put a hyperlink ([link](address)) or note wikilink ([[link]]) inside a header, with other words before and/or after the link.
Open the markdown preview and observe how the header is rendered.

Expected behavior
Spaces appear before and after the link in the header.
Screenshots
Raw markdown:

What the preview shows:

Desktop (please complete the following information)
OS: Windows 11 Home 10.0.22000
Browser (if with published websites; include version): N/A
Versions (all that apply to bug):
Dendron Extension: v0.107.2
VS Code version: 1.70.1
Dendron CLI:
Additional context
Add any other context about the problem here.
Dendron Log file
dendron.log

Thank you for the report. I can reproduce this. We'll let you know when this gets resolved

Reopening because #3403 did only apply the fix to the preview but not to publishing (nextjs-template)

This has been fixed in https://github.com/dendronhq/dendron/pull/3525


tableMaker.js has an undone TODO's

As per the title of the issue.

For my sanity: TODO: Fix lineheight.
As introduced in commit c4c2b2ee4911436313754d9f0a1df7298be37187

Pending response from the original creator of that lineheight fix function.
https://discord.com/channels/415207508303544321/895204896788328448/936396458658250773

Nice job!


V0.4.1

Codecov Report

Merging #130 (b788788) into master (3504bc4) will decrease coverage by 0.07%.
The diff coverage is 87.93%.

@@            Coverage Diff             @@
##           master     #130      +/-   ##
==========================================
- Coverage   90.01%   89.93%   -0.08%
==========================================
  Files          18       18
  Lines        2903     2940      +37
==========================================
+ Hits         2613     2644      +31
- Misses        290      296       +6

Impacted Files
Coverage Δ

neurodiffeq/solvers.py
87.56% <76.92%> (-0.42%)
:arrow_down:

neurodiffeq/monitors.py
90.48% <90.90%> (-0.28%)
:arrow_down:

neurodiffeq/operators.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


Setup continuous integration for testing

Continuous Integration is now running on Travis CI. The readme now contains a build status badge which links to the project page on Travis (https://travis-ci.org/belaustegui/trans).


Fix import path in React.Basic.DOM.Server JS

The string in import statement in Server.js is a path and it requires the file suffix as well.

It does seem that the file extension is required here.
❯ spago repl
[1 of 1] Compiling React.Basic.DOM.Server
PSCi, version 0.15.0
Type :? for help

> import Prelude
> import React.Basic.DOM.Server
> renderToString mempty
node:internal/process/promises:279
            triggerUncaughtException(err, true /* fromPromise */);
            ^

Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/Users/pete/Code/purescript/purescript-react-basic-dom/node_modules/react-dom/server' imported from /Users/pete/Code/purescript/purescript-react-basic-dom/.psci_modules/React.Basic.DOM.Server/foreign.js
Did you mean to import react-dom/server.js?
    at new NodeError (node:internal/errors:372:5)
    at finalizeResolution (node:internal/modules/esm/resolve:437:11)
    at moduleResolve (node:internal/modules/esm/resolve:1009:10)
    at defaultResolve (node:internal/modules/esm/resolve:1218:11)
    at ESMLoader.resolve (node:internal/modules/esm/loader:580:30)
    at ESMLoader.getModuleJob (node:internal/modules/esm/loader:294:18)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:80:40)
    at link (node:internal/modules/esm/module_job:78:36) {
  code: 'ERR_MODULE_NOT_FOUND'
}

After these changes, I see no errors
> :r
[1 of 1] Compiling React.Basic.DOM.Server
> renderToString mempty
""

Huh that's very weird. I can work on a hotfix tomorrow. I'm only on my phone but any idea why this isn't being picked up by the GitHub actions?

According to the Node ESM docs

Including the file extension is only necessary for packages without an "exports" field.

These both succeed
❯ echo "const { renderToString } = require('react-dom/server'); console.log(renderToString('example'))" | node
example

❯ echo "import { renderToString } from 'react-dom/server'; console.log(renderToString('example'))" | node --input-type=module
example

but this fails
❯ echo "import { renderToString } from 'react-dom/server'; console.log(renderToString('example'))" | node --input-type=module
node:internal/process/esm_loader:94
    internalBinding('errors').triggerUncaughtException(
                              ^

Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/Users/pete/Code/purescript/purescript-react-basic-dom/node_modules/react-dom/server' imported from /Users/pete/Code/purescript/purescript-react-basic-dom/[eval1]
Did you mean to import react-dom/server.js?
    at new NodeError (node:internal/errors:372:5)
    at finalizeResolution (node:internal/modules/esm/resolve:437:11)
    at moduleResolve (node:internal/modules/esm/resolve:1009:10)
    at defaultResolve (node:internal/modules/esm/resolve:1218:11)
    at ESMLoader.resolve (node:internal/modules/esm/loader:580:30)
    at ESMLoader.getModuleJob (node:internal/modules/esm/loader:294:18)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:80:40)
    at link (node:internal/modules/esm/module_job:78:36)
    at processTicksAndRejections (node:internal/process/task_queues:96:5) {
  code: 'ERR_MODULE_NOT_FOUND'
}

If I add an exports field to node_modules/react-dom/package.json like
  "exports": {
    ".": "./index.js",
    "./server": "./server.js"
  }

then it succeeds
❯ echo "import { renderToString } from 'react-dom/server'; console.log(renderToString('example'))" | node --input-type=module
example

Huh that's very weird. I can work on a hotfix release tomorrow. I'm only on my phone but any idea why this isn't being picked up by the GitHub actions?

" 1 workflow awaiting approval
First-time contributors need a maintainer to approve running workflows."

Sorry I meant why the existing checks didn't catch this error, since Pete was able to reproduce it so easily. I can take a look at them in the morning. Thanks for this PR

why the existing checks didn't catch this error

It seems like spago build doesn't catch bad import paths. Like export * as broken from "module-doesnt-exist" would be a runtime error if broken is referenced from PS. So a test file would have caught it I think. Not sure what to make of the error disappearing after yarn updates 🤔

It looks like the problem is probably due the fact that the current package.json expects ^17.0.0 of react-dom and that was added in ^18.0.0. This is a bit tricky, I think the correct thing would be to fix this using the change in the PR, but it sounds like that will break for 18, then do a new version for React 18 (most of the react-basic does not yet support React 18)

This would be my recommendation - https://github.com/lumihq/purescript-react-basic-dom/pull/39. Merge that and release as 5.0.1, then we can do a 6.0.0 for React 18

5.0.1 released - https://github.com/lumihq/purescript-react-basic-dom/releases/tag/v5.0.1


bug: Content not displayed on iOS

Bug Report
Ionic version:
[x] 4.x
Current behavior:
If i run ionic cordova build ios i get the result as show on the following image.
(The HTML is actually there, its just not displayed)

Expected behavior:
I actually expect it to look like:

I really appreciate any help.
Steps to reproduce:
Run the application on iOS (either emulator or real device)
Related code:
The application:
github.com/wavetrophy/app
There is also an issue about this on ionic super tabs.
zyra/ionic-super-tabs/issues/381
I'm not sure who can help me fix this.
Ionic info:
Ionic:

   ionic (Ionic CLI)             : 4.12.0 (/usr/local/lib/node_modules/ionic)
   Ionic Framework               : @ionic/angular 4.4.0
   @angular-devkit/build-angular : 0.13.6
   @angular-devkit/schematics    : 7.2.4
   @angular/cli                  : 7.3.9
   @ionic/angular-toolkit        : 1.4.1

Cordova:

   cordova (Cordova CLI) : 8.1.2<EMAIL_ADDRESS>   Cordova Platforms     : android 7.1.4, ios 4.5.5
   Cordova Plugins       : cordova-plugin-ionic 5.3.0, cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.0.1, (and 10 other plugins)

System:

   Android SDK Tools : 26.1.1 (/Users/bjorn/Library/Android/sdk)
   ios-deploy        : 1.9.4
   NodeJS            : v10.15.3<EMAIL_ADDRESS>   npm               : 6.4.1
   OS                : macOS Mojave
   Xcode             : Xcode 10.2.1 Build version 10E1001

I just found out, that if i set the css display: contents property to a super-tab that it will be displayed. however, if i set this property to all super-tab's it will display the last available super-tab

Sorry For bothering. The problem was within the Supertabs package, not within ionic.
I just wasted several hours of work figuring out how to fix something that's already fixed in an unreleased version. A bit frustrating...
For everyone who has exactly the same problem:
You can solve the problem by setting the super-tabs-container to a height of 100%.
See pull 379


work on crayon & grithub errors

trying to get tests to pass in more places and more often.

Shoot, this includes lindsay's code that i was trying to complement rather than copy. no good.

Coverage decreased (-0.5%) to 64.232% when pulling 639c58256509747a6dbd1280254bf7afb2430f2e on aappling-usgs:crayon_errors into 3cc196edbff50e4d38a8212e13ebedfee3dcbb0e on USGS-VIZLAB:master.


No config for region_id 40 (NRW)

Dear @mampfes,
i live in NRW, which have the region_id = 40.
But i don't live in the sub-regions with partregion_id 41, 42 or 43
During the customizing, i muss select a sub-region.
Their is no "empty" value.

The whole area of Germany is covered by the sub-regions. Please check Gebietseinteilung and select your closest sub-region.
BTW: DWD does not provide data per region, only per sub-region. Therefore you can't select a region.