Running in Azure pipeline to sign clickonce not working

Describe the bug
Problem connecting to Key Vault for ClickOnce signing. We got a signing certificate that works only in Azure Key Vault, so to use it for signing a ClickOnce application we had to do many things. But we ran into the issue.
Just as a clarification, all credentials passed to "sign" are correct. If I replace "sign" with "AzureSignTool" passing the same credentials, exe-file will be signed OK. but we need not only EXE.
Repro steps
- task: DotNetCoreCLI@2
        displayName: 'Install Azure SignTool'
        inputs:
          command: custom
          custom: tool
          arguments: 'update --global AzureSignTool'
        continueOnError: true

      - task: DotNetCoreCLI@2
        inputs:
          command: custom
          custom: tool
          arguments: 'update --global sign --version 0.9.1-beta.24123.2'
        displayName: Install SignTool tool
        continueOnError: true

      - task: PowerShell@2
        displayName: 'Signing ClickOnce'
        inputs:
          targetType: 'inline'
          script: |
            sign code azure-key-vault '**\*.clickonce' .... <other required parameters>
          failOnStderr: true
          workingDirectory: $(Agent.TempDirectory)

Actual behavior
2024-02-27T10:56:54.6624513Z ##[section]Starting: Signing ClickOnce
2024-02-27T10:56:54.6712973Z ==============================================================================
2024-02-27T10:56:54.6713060Z Task         : PowerShell
2024-02-27T10:56:54.6713115Z Description  : Run a PowerShell script on Linux, macOS, or Windows
2024-02-27T10:56:54.6713274Z Version      : 2.232.1
2024-02-27T10:56:54.6713314Z Author       : Microsoft Corporation
2024-02-27T10:56:54.6713362Z Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/powershell
2024-02-27T10:56:54.6713445Z ==============================================================================
2024-02-27T10:56:55.3740543Z Generating script.
2024-02-27T10:56:55.4043164Z ========================== Starting Command Output ===========================
2024-02-27T10:56:55.4209497Z ##[command]"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command ". 'C:\a\_temp\94fbe7e9-9ae4-4340-9a80-a6d012cb1871.ps1'"
2024-02-27T10:56:56.5141016Z fail: Sign.Core.ISigner[0]
2024-02-27T10:56:56.5151746Z       ClientSecretCredential authentication failed: A configuration issue is preventing authentication - check the error message from the server for details. You can modify the configuration in the application registration portal. See https://aka.ms/msal-net-invalid-client for details.  Original exception: AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbb25bb2-c308-4961-a986-ceda584233c3'. Trace ID: eaf6a9b0-b847-44d9-974a-98387978c800 Correlation ID: 6d94306b-96bd-4cde-adbb-36164e93bce3 Timestamp: 2024-02-27 10:56:56Z
2024-02-27T10:56:56.5160275Z       Azure.Identity.AuthenticationFailedException: ClientSecretCredential authentication failed: A configuration issue is preventing authentication - check the error message from the server for details. You can modify the configuration in the application registration portal. See https://aka.ms/msal-net-invalid-client for details.  Original exception: AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbb25bb2-c308-4961-a986-ceda584233c3'. Trace ID: eaf6a9b0-b847-44d9-974a-98387978c800 Correlation ID: 6d94306b-96bd-4cde-adbb-36164e93bce3 Timestamp: 2024-02-27 10:56:56Z
2024-02-27T10:56:56.5167723Z        ---> MSAL.NetCore.<IP_ADDRESS>.MsalServiceException:
2024-02-27T10:56:56.5175412Z 	ErrorCode: invalid_client
2024-02-27T10:56:56.5185353Z Microsoft.Identity.Client.MsalServiceException: A configuration issue is preventing authentication - check the error message from the server for details. You can modify the configuration in the application registration portal. See https://aka.ms/msal-net-invalid-client for details.  Original exception: AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbb25bb2-c308-4961-a986-ceda584233c3'. Trace ID: eaf6a9b0-b847-44d9-974a-98387978c800 Correlation ID: 6d94306b-96bd-4cde-adbb-36164e93bce3 Timestamp: 2024-02-27 10:56:56Z
2024-02-27T10:56:56.5192658Z          at Microsoft.Identity.Client.OAuth2.OAuth2Client.ThrowServerException(HttpResponse response, RequestContext requestContext)
2024-02-27T10:56:56.5201063Z          at Microsoft.Identity.Client.OAuth2.OAuth2Client.CreateResponse[T](HttpResponse response, RequestContext requestContext)
2024-02-27T10:56:56.5210286Z          at Microsoft.Identity.Client.OAuth2.OAuth2Client.ExecuteRequestAsync[T](Uri endPoint, HttpMethod method, RequestContext requestContext, Boolean expectErrorsOn200OK, Boolean addCommonHeaders, Func`2 onBeforePostRequestData)
2024-02-27T10:56:56.5222314Z          at Microsoft.Identity.Client.OAuth2.OAuth2Client.GetTokenAsync(Uri endPoint, RequestContext requestContext, Boolean addCommonHeaders, Func`2 onBeforePostRequestHandler)
2024-02-27T10:56:56.5232183Z          at Microsoft.Identity.Client.OAuth2.TokenClient.SendHttpAndClearTelemetryAsync(String tokenEndpoint, ILoggerAdapter logger)
2024-02-27T10:56:56.5240875Z          at Microsoft.Identity.Client.OAuth2.TokenClient.SendHttpAndClearTelemetryAsync(String tokenEndpoint, ILoggerAdapter logger)
2024-02-27T10:56:56.5249357Z          at Microsoft.Identity.Client.OAuth2.TokenClient.SendTokenRequestAsync(IDictionary`2 additionalBodyParameters, String scopeOverride, String tokenEndpointOverride, CancellationToken cancellationToken)
2024-02-27T10:56:56.5257660Z          at Microsoft.Identity.Client.Internal.Requests.RequestBase.SendTokenRequestAsync(IDictionary`2 additionalBodyParameters, CancellationToken cancellationToken)
2024-02-27T10:56:56.5265824Z          at Microsoft.Identity.Client.Internal.Requests.ClientCredentialRequest.GetAccessTokenAsync(CancellationToken cancellationToken, ILoggerAdapter logger)
2024-02-27T10:56:56.5274096Z          at Microsoft.Identity.Client.Internal.Requests.ClientCredentialRequest.ExecuteAsync(CancellationToken cancellationToken)
2024-02-27T10:56:56.5282088Z          at Microsoft.Identity.Client.Internal.Requests.RequestBase.RunAsync(CancellationToken cancellationToken)
2024-02-27T10:56:56.5290159Z          at Microsoft.Identity.Client.ApiConfig.Executors.ConfidentialClientExecutor.ExecuteAsync(AcquireTokenCommonParameters commonParameters, AcquireTokenForClientParameters clientParameters, CancellationToken cancellationToken)
2024-02-27T10:56:56.5298040Z          at Azure.Identity.AbstractAcquireTokenParameterBuilderExtensions.ExecuteAsync[T](AbstractAcquireTokenParameterBuilder`1 builder, Boolean async, CancellationToken cancellationToken)
2024-02-27T10:56:56.5305967Z          at Azure.Identity.MsalConfidentialClient.AcquireTokenForClientCoreAsync(String[] scopes, String tenantId, Boolean enableCae, Boolean async, CancellationToken cancellationToken)
2024-02-27T10:56:56.5313881Z          at Azure.Identity.MsalConfidentialClient.AcquireTokenForClientAsync(String[] scopes, String tenantId, Boolean enableCae, Boolean async, CancellationToken cancellationToken)
2024-02-27T10:56:56.5321680Z          at Azure.Identity.ClientSecretCredential.GetTokenAsync(TokenRequestContext requestContext, CancellationToken cancellationToken)
2024-02-27T10:56:56.5329960Z 	StatusCode: 401
2024-02-27T10:56:56.5339247Z 	ResponseBody: {"error":"invalid_client","error_description":"AADSTS7000215: Invalid client secret provided. Ensure the secret being sent in the request is the client secret value, not the client secret ID, for a secret added to app 'bbb25bb2-c308-4961-a986-ceda584233c3'. Trace ID: eaf6a9b0-b847-44d9-974a-98387978c800 Correlation ID: 6d94306b-96bd-4cde-adbb-36164e93bce3 Timestamp: 2024-02-27 10:56:56Z","error_codes":[7000215],"timestamp":"2024-02-27 10:56:56Z","trace_id":"eaf6a9b0-b847-44d9-974a-98387978c800","correlation_id":"6d94306b-96bd-4cde-adbb-36164e93bce3","error_uri":"https://login.microsoftonline.com/error?code=7000215"}
2024-02-27T10:56:56.5346124Z 	Headers: Cache-Control: no-store, no-cache
2024-02-27T10:56:56.5354079Z       Pragma: no-cache
2024-02-27T10:56:56.5362032Z       Strict-Transport-Security: max-age=31536000; includeSubDomains
2024-02-27T10:56:56.5370047Z       X-Content-Type-Options: nosniff
2024-02-27T10:56:56.5377702Z       P3P: CP="DSP CUR OTPi IND OTRi ONL FIN"
2024-02-27T10:56:56.5386159Z       client-request-id: 6d94306b-96bd-4cde-adbb-36164e93bce3
2024-02-27T10:56:56.5394087Z       x-ms-request-id: eaf6a9b0-b847-44d9-974a-98387978c800
2024-02-27T10:56:56.5401921Z       x-ms-ests-server: 2.1.17396.8 - SCUS ProdSlices
2024-02-27T10:56:56.5409426Z       x-ms-clitelem: 1,7000215,0,,
2024-02-27T10:56:56.5416954Z       X-XSS-Protection: 0
2024-02-27T10:56:56.5425407Z       Set-Cookie: fpc=As9pJbPRAFtJl8b14ygayrKCDbBsAQAAAPe2b90OAAAA; expires=Thu, 28-Mar-2024 10:56:56 GMT; path=/; secure; HttpOnly; SameSite=None, x-ms-gateway-slice=estsfd; path=/; secure; samesite=none; httponly, stsservicecookie=estsfd; path=/; secure; samesite=none; httponly
2024-02-27T10:56:56.5432149Z       Date: Tue, 27 Feb 2024 10:56:55 GMT
2024-02-27T10:56:56.5439967Z
2024-02-27T10:56:56.5447907Z          --- End of inner exception stack trace ---
2024-02-27T10:56:56.5455467Z          at Azure.Identity.CredentialDiagnosticScope.FailWrapAndThrow(Exception ex, String additionalMessage, Boolean isCredentialUnavailable)
2024-02-27T10:56:56.5462557Z          at Azure.Identity.ClientSecretCredential.GetTokenAsync(TokenRequestContext requestContext, CancellationToken cancellationToken)
2024-02-27T10:56:56.5470203Z          at Azure.Core.Pipeline.BearerTokenAuthenticationPolicy.AccessTokenCache.GetHeaderValueFromCredentialAsync(TokenRequestContext context, Boolean async, CancellationToken cancellationToken)
2024-02-27T10:56:56.5477771Z          at Azure.Core.Pipeline.BearerTokenAuthenticationPolicy.AccessTokenCache.GetHeaderValueAsync(HttpMessage message, TokenRequestContext context, Boolean async)
2024-02-27T10:56:56.5485175Z          at Azure.Core.Pipeline.BearerTokenAuthenticationPolicy.AccessTokenCache.GetHeaderValueAsync(HttpMessage message, TokenRequestContext context, Boolean async)
2024-02-27T10:56:56.5492676Z          at Azure.Core.Pipeline.BearerTokenAuthenticationPolicy.AuthenticateAndAuthorizeRequestAsync(HttpMessage message, TokenRequestContext context)
2024-02-27T10:56:56.5501824Z          at Azure.Security.KeyVault.ChallengeBasedAuthenticationPolicy.AuthorizeRequestOnChallengeAsyncInternal(HttpMessage message, Boolean async)
2024-02-27T10:56:56.5510999Z          at Azure.Core.Pipeline.BearerTokenAuthenticationPolicy.ProcessAsync(HttpMessage message, ReadOnlyMemory`1 pipeline, Boolean async)
2024-02-27T10:56:56.5519576Z          at Azure.Core.Pipeline.RedirectPolicy.ProcessAsync(HttpMessage message, ReadOnlyMemory`1 pipeline, Boolean async)
2024-02-27T10:56:56.5527990Z          at Azure.Core.Pipeline.RetryPolicy.ProcessAsync(HttpMessage message, ReadOnlyMemory`1 pipeline, Boolean async)
2024-02-27T10:56:56.5536951Z          at Azure.Core.Pipeline.RetryPolicy.ProcessAsync(HttpMessage message, ReadOnlyMemory`1 pipeline, Boolean async)
2024-02-27T10:56:56.5547160Z          at Azure.Core.Pipeline.HttpPipeline.SendRequestAsync(Request request, CancellationToken cancellationToken)
2024-02-27T10:56:56.5557579Z          at Azure.Security.KeyVault.KeyVaultPipeline.SendRequestAsync(Request request, CancellationToken cancellationToken)
2024-02-27T10:56:56.5567886Z          at Azure.Security.KeyVault.KeyVaultPipeline.SendRequestAsync[TResult](RequestMethod method, Func`1 resultFactory, CancellationToken cancellationToken, String[] path)
2024-02-27T10:56:56.5577709Z          at Azure.Security.KeyVault.Certificates.CertificateClient.GetCertificateAsync(String certificateName, CancellationToken cancellationToken)
2024-02-27T10:56:56.5587760Z          at Sign.Core.KeyVaultService.GetKeyVaultCertificateAsync(Uri keyVaultUrl, TokenCredential tokenCredential, String certificateName) in /_/src/Sign.Core/KeyVault/KeyVaultService.cs:line 71
2024-02-27T10:56:56.5596983Z          at Sign.Core.KeyVaultService.GetCertificateAsync(CancellationToken cancellationToken) in /_/src/Sign.Core/KeyVault/KeyVaultService.cs:line 47
2024-02-27T10:56:56.5607000Z          at Sign.Core.Signer.SignAsync(IReadOnlyList`1 inputFiles, String outputFile, FileInfo fileList, DirectoryInfo baseDirectory, String applicationName, String publisherName, String description, Uri descriptionUrl, Uri timestampUrl, Int32 maxConcurrency, HashAlgorithmName fileHashAlgorithm, HashAlgorithmName timestampHashAlgorithm) in /_/src/Sign.Core/Signer.cs:line 78
2024-02-27T10:56:56.6876976Z ##[error]PowerShell exited with code '1'.
2024-02-27T10:56:56.7180096Z ##[section]Finishing: Signing ClickOnce

It looks like an issue. Just again, client credentials are 100% valid.

What parameters are you passing in? For any sensitive values, you can mask those out. The error message indicates that there's an invalid client secret in the authentication.

What parameters are you passing in? For any senstive values, you can mask those out. The error message indicates that there's an invalid client secret in the authentication.

@apavelm, if this is still an issue, please retry with the latest release of Sign CLI and answer @clairernovotny's question.

Reopen if this is still an issue.

I can't confirm or deny the issue, as we discontinued that app.


Older docker-compose versions don't support docker-compose config

I ran into this issue with 1.2.0.
Running plugin github.com/buildkite-plugins/docker-compose-buildkite-plugin#v1.7.0 command hook | 0s
-- | --
  | # A hook runner was written to "/tmp/buildkite-agent-bootstrap-hook-runner-550291113" with the following:
  | /var/buildkite-agent/plugins/github-com-buildkite-plugins-docker-compose-buildkite-plugin-v1-7-0/hooks/command
  | # Executing "/tmp/buildkite-agent-bootstrap-hook-runner-550291113"
  | $ /bin/bash -c /tmp/buildkite-agent-bootstrap-hook-runner-550291113
  | $ docker-compose -f docker-compose.yml -p buildkitedca524ae891d484094422bf9f196331f config
  | No such command: config
  |
  | Commands:
  | build     Build or rebuild services
  | help      Get help on a command
  | kill      Kill containers
  | logs      View output from containers
  | port      Print the public port for a port binding
  | ps        List containers
  | pull      Pulls service images
  | rm        Remove stopped containers
  | run       Run a one-off command
  | scale     Set number of containers for a service
  | start     Start services
  | stop      Stop services
  | restart   Restart services
  | up        Create and start containers
  | $ buildkite-agent meta-data get docker-compose-plugin-built-image-tag-statusbot

This was indeed an issue that should have been properly documented as the config command of docker-compose was added on version 1.6.0 back in early 2016. I don't think that this is an issue any more, though.


Fix fonts in demo

https://github.com/flutter/samples/blob/6290e253f3292dd916765d52e28569bfc33f9c58/web/gallery/web/assets/FontManifest.json#L1-L9
Add Material Icons to your font manifest!

Thank you! Will do


Test porting

create test case of virtual memory and sd tensor for ci

@Knight-X can you rebase?

@mbartling  sure.


win32: upgrade Docker container to Debian 11 (bullseye)

This container is used only for post-processing Windows binaries,
so we can safely bump to Debian 11 (bullseye).
The Linux ARMv7-A and ARMv6 containers still require Debian 10
(buster) to avoid a glibc version bump in the resulting binaries.

Thanks Kleis.


Refactor authentication code to be clearer

if (!foo)
return "blarg"
if (!bar)
return "zzizz"
return ""
instead of
if (foo)
if (bar)
return ""
return "zzizz"
return "blarg"

Fixed. The code that returns the authentication errors is now much clearer


VGP data update

Some minor fixes to perform the parameter updates of q_mu/q_sqrt for the VGP. This was broken after #612 , and when using the VGP as part of a Parameterized compile() was not called, so the code to update the parameters was moved to _build()

Hi @javdrher, sorry for being a bit out of touch with these PRs lately. We're doing a push to get back on track. Is this still relevant?


demo/requirements.txt pip install fails

I attempted to run the demo locally, but the 'pip install' command returned the following error:
Collecting asyncpg~=0.25.0
  Using cached asyncpg-0.25.0.tar.gz (804 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [33 lines of output]
      Traceback (most recent call last):
        File "/home/mrk/devel/gh_forks/aries-cloudagent-python/demo/venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/home/mrk/devel/gh_forks/aries-cloudagent-python/demo/venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/home/mrk/devel/gh_forks/aries-cloudagent-python/demo/venv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
                 ^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-k8ehss_9/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 325, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=['wheel'])
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-k8ehss_9/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires
          self.run_setup()
        File "/tmp/pip-build-env-k8ehss_9/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 311, in run_setup
          exec(code, locals())
        File "<string>", line 248, in <module>
        File "/tmp/pip-build-env-k8ehss_9/overlay/lib/python3.11/site-packages/setuptools/__init__.py", line 103, in setup
          return distutils.core.setup(**attrs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-k8ehss_9/overlay/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 159, in setup
          dist.parse_config_files()
        File "/tmp/pip-build-env-k8ehss_9/overlay/lib/python3.11/site-packages/setuptools/dist.py", line 627, in parse_config_files
          pyprojecttoml.apply_configuration(self, filename, ignore_option_errors)
        File "/tmp/pip-build-env-k8ehss_9/overlay/lib/python3.11/site-packages/setuptools/config/pyprojecttoml.py", line 66, in apply_configuration
          config = read_configuration(filepath, True, ignore_option_errors, dist)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-k8ehss_9/overlay/lib/python3.11/site-packages/setuptools/config/pyprojecttoml.py", line 127, in read_configuration
          validate(subset, filepath)
        File "/tmp/pip-build-env-k8ehss_9/overlay/lib/python3.11/site-packages/setuptools/config/pyprojecttoml.py", line 55, in validate
          raise ValueError(f"{error}\n{summary}") from None
      ValueError: invalid pyproject.toml config: `project`.
      configuration error: `project` must contain ['name'] properties
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

Updating asyncpg dependency to asyncpg~=0.26.0 solves the issue.

Thanks -- the fix has been merged.


Add frf noise cov

This PR will add a (analytic) noise covariance calculation for the effects of the main lobe filter + coherent averaging, ignoring the effects of the notch filter. Things left to do include
[ x] Make the conversion to pI happen after coherent averaging
[ x] Recheck that the FRF + coherent average operation is similar b/w the noise covariance filter implementation and the pipeline filter implementation
[ ] Ensure the analytically propagated variances agree with the noise-dominated delay spectra
[ x] See if Josh's rule of thumb can be extracted from the covariance matrices
[ ] Try with a few different baselines to make sure nothing wild is happening

Here are some test results with new correlation matrix based correction factors to the noise variances. To tease this out in an obvious way, we used noise-only simulations and just the central LSTs for the non-incoherently averaged PS (top row in the following plots) since the edge LSTs have pretty different statistics compared to the central ones.
Here is using the original correction factors, there is a ~10% error in the standard deviation in the top panel:

Here is using the new correction:

The data in the top panel now look standardized.
The bottom panel doesn't visually change depending on which correction factor we use, but you can see that the MAD statistic improves (gets closer to 1) with the new correction factor.

@jsdillon I don't know to what extent we want to finish all the items in the checklist above before merging (also there is a cell with a known bug in it related to converting to pI after coherent averaging). Theoretically one could go as far as propagating these matrices to the delay spectra themselves, which could range from easy to hard depending  on how much is going on under the hood in pspec.
My inclination is to leave this here since the noise-dominated delay bins look Gaussian anyway after incoherent averaging and the correction factors appear to be doing the right thing as noted in the previous comment.


Mail and Calendar app not working

I might have missed some part of code, but, Mail and Calendar apps are crashing within seconds after opening.
Need help to revert this feature or function.

What sections did you ran?

I ran something related to Microsoft communications. I think I went wrong there.

Hm. Can confirm...

Mail, calendar and synchronization depend on

OneSyncSvc - Синхронизация узла

PimIndexMaintenanceSvc - Служба контактных данных

UnistoreSvc - Служба хранения данных пользователя

UserDataSvc - Служба доступа к данным пользователя

@gtumanyan, yeah, thought the same way. Need more tests.

So thanks for bug reporting and @gtumanyan. And from now I've forgot about blocking the Win 10 telemetry, The end.
New-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\PimIndexMaintenanceSvc -Name Start -PropertyType DWord -Value 3 -Force
Remove-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\PimIndexMaintenanceSvc -Name UserServiceFlags -PropertyType DWord -Value 0 -Force
New-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\UnistoreSvc -Name Start -PropertyType DWord -Value 3 -Force
Remove-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\UnistoreSvc -Name UserServiceFlags -PropertyType DWord -Value 0 -Force
New-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\UserDataSvc -Name Start -PropertyType DWord -Value 3 -Force
Remove-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\UserDataSvc -Name UserServiceFlags -PropertyType DWord -Value 0 -Force
# Restart required

Hi, I already tried reinstalling as per #52 but issue still persists. I realised UserDataSvc  is no longer in my services.msc what can I do to resolve this? Much appreciated.


temporary opt-in for kustomize helmChart

a temporary opt-in, to support kustomizes helmChart inflator.
would allow for drift detection in  cluster environments, until the helm-controller supports this feature.

Helm drift detection has been implemented, docs here https://fluxcd.io/flux/installation/configuration/helm-drift-detection/


add smart contract call tests in the integration test

The goal of this test is to generate a block that includes the execution of Greeter smart contract set_value and retrieve call, and then run through the zkevm circuits and be able to generate the proof and verify it.
Reference: https://github.com/appliedzkp/zkevm-circuits/blob/main/integration-tests/tests/circuits.rs#L104

almost done. except two big issues

bus-mapping for calldataload
sstore needs prev_value / commited_value from trace


Merge with Debian OBS?

I just noticed this was a thing now. Should we merge the OBS repository with the one I setup for Debian?

I'm also thinking of seeing if regular user accounts can help manage the repository since the automated processes are mainly needed for uploading new builds.

I am good with moving the repo under the one you created, but I don't know how it affect the workflow. Currently I just test everything out in a branched -dev repo (I do not build locally) then submit the package to the actual public repo. Will the branched repo be kept after the movement?
I am not really familiar with how _service works and the OBS documentations are kind of messy, so I currently upload everything manually. If you can help with that it will be great.

I'll have to look into how it works for RPM systems specifically. But currently I have it setup based on the structure of the Debian repos. For Fedora or CentOS, each distribution variant would need its branch in this repository which would then upload to a specific package in either the production or development project. I am currently working on seeing if I can finish the Arch support first since it should be the simplest.

For Fedora or CentOS, each distribution variant would need its own branch

Yeah that will be better. For upstream (the fedora chromium package) usually tey will merge modifications on each distribution into master so eventually all branches will be level with the main branch, but separate branches/packages can deal with some specific situations better I guess.

Yes, we frequently have to use patches specific to distribution releases. You can try to come up with another option but you still need something to signal the differences between builds. If you can create a single set of files that will build correctly for all Fedora / CentOS environments then we might be able to make that work. The hack I came up with was to compensate for the differences between the branches being generally incompatible.

In this regard it's possible RPM is more sensible than Debian's whole system as Debian often ends up generating source packages specific to a release.

Huh. It seems that's what you already do? That should make implementation much easier.
@Eloston Can I get commit access to this repository so I can implement OBS support?

It seems that's what you already do?

You mean the spec file or the OBS repo? For the spec file you can have a look at lines like this where conditions are used for applying different things on different distributions.
For the OBS repo I just activate 4 distributions on the Repositories tab in the project (and add some sources because some non-free yum (=apt on Debian) sources are not activated by default).

I meant you're able to just use a single package for the whole Fedora distribution set. Here I have to use a separate package for each.
https://build.opensuse.org/project/show/home:ungoogled_chromium

Ok yes that is benifited from the spec file's ability of doing conditioning branches, so everything can be put in a single repo. Guess Debian doesn't allow that?

Not really. It seems to expect them to be generated from a source repository or so. We can't selectively enable portions, etc.

I have created a PR for some stuff I found while researching this problem. See #3.
I noticed from the sources that you are currently uploading a custom modified tarball. We had to do something similar for Debian before and it was a hassle to get it working well for OBS. We ended up having to extract the regular tarball and apply the modification scripts during the build.
Is this an option we might be able to use for Fedora? In any case it would mean changes to the existing build scripts to facilitate it. Otherwise our script for OBS would probably have to repackage it prior to upload. If that is the case, how is it done?

I have created a PR

LGTM, merged.

We ended up having to extract the regular tarball and apply the modification scripts prior to the build.

Is that allowed by OBS? Fedora build servers and COPR doesn't allow upload of source codes that contains ffmpeg with proprietary codecs, I thought OBS has the same policy?
If the upload is allowed then sure we can do that in the building script.

If that is the case, how is it done?

It is done by chromium-latest.py --version {version_of_chromium} --ffmpegclean (--ffmpegarm). The script will download original chromium source and clean ffmpeg, then repack it automatically.

Well, we upload the original chromium tarballs for both the Debian and Arch repositories already. We don't repack them prior to upload. And I looked at the official OpenSUSE packaging for chromium. I don't see any attempt made to do this in their scripts. I suspect we'd be OK if we just used the Fedora system ffmpeg and let it be at that. Our final binaries would probably not include the codecs they have an issue with as we would be using the distribution ffmpeg and not the bundled one.
https://build.opensuse.org/package/view_file/network:chromium/chromium/chromium.spec
Your thoughts, @Eloston?

What exactly was the problem with repacking before upload?
I would prefer either repackaging before uploading for two reasons:

It is a one liner with chromium-latest.py
I want to avoid unnecessary modifications on the spec file so it is easier to follow up with upstream updalso onelineates

Or the other option is do not upload anything at all but run chromium-latest.py directly in spec file, which shall also be one or two lines change.

The main problem is it slows down the github action a fair bit. I didn't know there was more involved than just Fedora's policies. I will see what I can do to just automate the current method then.

I've been leveraging _service for the other setups to make OBS download the source files instead of us needing to do so as a performance enhancement. It's expensive to upload large packages like this. But we can't really do that if we need to customize the source files.

In that case I think it is better to run chromium-latest.py in either _service if possilble, or run in spec file directly.

I'll see if it's possible to prepare the sources immediately before our build like we do with Debian.

If we do make these changes we can hide them behind an OBS variable so it won't be enabled for manual builds.

Looks like Chromium 90 is due to land soon. I'll wait on finishing up the OBS support here.

It's taking longer than expected so I have gone ahead and implemented it. I am still waiting for the builds resulting from my test upload to see if they build correctly or not. I have put up a proposal in the PR. It works via repository secrets so I will still need access to finish the last part. But this should work now. You can also use it to perform scripted manual uploads provided they conform to the same structure.

I ended up needing to use rpmspec to extract all the information I needed to generate the _service file. I can't use the download_files method because we rely on conditional source files so I am forced to generate all the download URLs by simulating each of the supported release targets in order to get the complete list.

After tinkering for awhile I have figured out what was keeping some of the repositories from building. It's ready to be merged whenever though I find I am going to have to use some project configuration for centos 8.

Currently seeing if I can get it to build for i586 and aarch64 since those architectures are mentioned in the packaging.

So far it's looking promising. My workaround appears to have worked. But it's going to be a day or so before I know if this is going to work for aarch64 due to how slow it is. If it does I'll do a repeat test of it with my official changes to make it work for OBS.

After that the only thing left before I can make it automated is regular access to this repository.

@braewoods Access should have been granted several days ago, let me know if this is not the case.

@Eloston It hasn't been. I'm a member of the team but for some reason I have no special privileges to this repository.

@braewoods Right, I think I gave the fedora team Maintain access only. I've granted you and @wchen342 Admin access.

Ok, seems everything is in order to deploy OBS. I'll test it shortly.


Kubernetes backend configuration is unclear

I'm trying to use Traefik as a Kubernetes ingress controller, but I'm getting an error and I am not able to figure out what might be wrong with my configuration from the Traefik documentation.
Any help figuring out the issue here or improved documentation about the expected configuration for all these various resources would be much appreciated! Let me know if there's other information I can provide to help diagnose.
Traefik version: v1.0.0-beta.704 (via official Docker image)
Traefik itself is running in the default Kubernetes namespace.
The error appearing in Traefik's logs is:
time="2016-05-25T21:51:09Z" level=error msg="Error loading new configuration, aborted Undefined backend: foo.example.com"

Here's the full log with debug logging enabled: https://gist.github.com/jimmycuadra/9a5ef319796d6b1dc73a401946b07a4a
traefik.toml:
defaultEntryPoints = ["http", "https"]

[entryPoints]

[entryPoints.http]
address = ":80"

[entryPoints.http.redirect]
entryPoint = "https"

[entryPoints.https]
address = ":443"

[entryPoints.https.tls]

[[entryPoints.https.tls.certificates]]
CertFile = "/etc/ssl/cert.pem"
KeyFile = "/etc/ssl/key.pem"

[kubernetes]

[web]
address = ":8080"
ReadOnly = true

I also tried setting kubernetes.namespaces to an empty array, since from looking at the code it seems it will read ingresses from all namespaces if and only if that array is empty. But again, the documentation doesn't explain this so I'm not totally sure. In either case, both the default value and an empty array produce the same error.
The ingress resource I'm attempting to fulfill:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  creationTimestamp: 2016-05-25T00:44:03Z
  generation: 1
  name: foo
  namespace: foo
  resourceVersion: "1122189"
  selfLink: /apis/extensions/v1beta1/namespaces/foo/ingresses/foo
  uid: c7861949-2211-11e6-a0d7-064f66afdabf
spec:
  rules:
  - host: foo.example.com
    http:
      paths:
      - backend:
          serviceName: foo
          servicePort: http
status:
  loadBalancer: {}

The service it points to:
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: 2016-05-25T00:44:03Z
  name: foo
  namespace: foo
  resourceVersion: "1122187"
  selfLink: /api/v1/namespaces/foo/services/foo
  uid: c756d03b-2211-11e6-a0d7-064f66afdabf
spec:
  clusterIP: <IP_ADDRESS>
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: http
  selector:
    app: foo
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}

Hey @jimmycuadra I have been working on some documentation for k8s for a few days, I will let you know when I am done.
Regarding you configuration, it seems like traefik is not getting the backend configuration (the service) from kubernetes properly.  You may wan't to double check that your service is up properly....

The service is definitely up. A couple things I see that might be a problem, but I'm not sure if they matter:

The service is not in the same namespace as the ingress controller. The controller is in the default namespace, but the service (as well as the pods and the ingress resource that go with it) are in the "foo" namespace.
The error in the logs report that there is no backend "foo.example.com" but that is not the name of the service. The name is just "foo". I'm not sure whether the error message means that it's looking for a service with the name "foo.example.com" or it's just printing the hostname it matched and it really means "no backend for frontend 'foo.example.com'"

It also might be helpful to note that the response from the /api endpoint on Traefik's own API just returns an empty JSON object: {}.

The reason is that you are referring to the service port by name and not number.  I fixed this in #380.  If you upgrade to version v1.0.0-beta.723 or above your issue should be fixed.
Sorry I didn't notice any earlier :(

using text on servicePort:  is just not compilant with the spec ( in 1.2 )
A backend is a service:port combination as described in the services doc.
type ServicePort struct {
	// The name of this port within the service. This must be a DNS_LABEL.
	// All ports within a ServiceSpec must have unique names. This maps to
	// the 'Name' field in EndpointPort objects.
	// Optional if only one ServicePort is defined on this service.
	Name string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"`

	// The IP protocol for this port. Supports "TCP" and "UDP".
	// Default is TCP.
	Protocol Protocol `json:"protocol,omitempty" protobuf:"bytes,2,opt,name=protocol,casttype=Protocol"`

	// The port that will be exposed by this service.
	Port int32 `json:"port" protobuf:"varint,3,opt,name=port"`

	// Number or name of the port to access on the pods targeted by the service.
	// Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
	// If this is a string, it will be looked up as a named port in the
	// target Pod's container ports. If this is not specified, the value
	// of the 'port' field is used (an identity map).
	// This field is ignored for services with clusterIP=None, and should be
	// omitted or set equal to the 'port' field.
	// More info: http://releases.k8s.io/HEAD/docs/user-guide/services.md#defining-a-service
	TargetPort intstr.IntOrString `json:"targetPort,omitempty" protobuf:"bytes,4,opt,name=targetPort"`

	// The port on each node on which this service is exposed when type=NodePort or LoadBalancer.
	// Usually assigned by the system. If specified, it will be allocated to the service
	// if unused or else creation of the service will fail.
	// Default is to auto-allocate a port if the ServiceType of this Service requires one.
	// More info: http://releases.k8s.io/HEAD/docs/user-guide/services.md#type--nodeport
	NodePort int32 `json:"nodePort,omitempty" protobuf:"varint,5,opt,name=nodePort"`
}

but actually it's work but dont know if it's normal ^^
type IngressBackend struct {
	// Specifies the name of the referenced service.
	ServiceName string `json:"serviceName"`

	// Specifies the port of the referenced service.
	ServicePort intstr.IntOrString `json:"servicePort"`
}

Ah ha! Switching the port name to the port number got rid of the error, and now both the frontend and backend are showing up in Traefik's API.
Now when I curl the external URL from outside the cluster, I get an SSL handshake error:
$ curl -i -v https://foo.example.com/lita/info
*   Trying <redacted IP>...
* Connected to foo.example.com (<redacted IP>) port 443 (#0)
* Server aborted the SSL handshake
* Closing connection 0
curl: (35) Server aborted the SSL handshake

I don't see anything at all in Traefik's logs. I want it to terminate SSL at Traefik before forwarding the request to the service over plain HTTP. Do I have another configuration problem causing this? Here's the output of Traefik's /api endpoint:
{
  "kubernetes": {
    "backends": {
      "foo.example.com": {
        "servers": {
          "c756d03b-2211-11e6-a0d7-064f66afdabf": {
            "url": "http://<IP_ADDRESS>:80",
            "weight": 1
          }
        },
        "loadBalancer": {
          "method": "wrr"
        }
      }
    },
    "frontends": {
      "foo.example.com": {
        "entryPoints": ["http", "https"],
        "backend": "foo.example.com",
        "routes": {
          "foo.example.com": {
            "rule": "Host:foo.example.com"
          }
        },
        "passHostHeader": true
      }
    }
  }
}

Thanks for the help on this.

Any ideas on the SSL handshake error? Should I open a new issue for that? It may not be related to the original issue.

The problem with SSL was not Traefik, it was ports we hadn't allowed from our ELB to the cluster. Very sorry for the trouble and thank you for the help figuring out the original issue!


Laps are missing in TCX export (Treadmil)

I'm happy to see that @ryanbinns added the treadmil export.
I had a look at https://github.com/dlenski/ttbindec
It's based on your repository and it seems the Laps can be read. Would be great if the rounds would be available in the tcx files too.
If I find time I will have a deeper look into the source code and try it by myself.
00013178 25 FILE_HEART_RATE_RECORD(heart_rate=134, _reserved=255, timestamp=1442857141)
0001317f 32 FILE_TREADMILL_RECORD(timestamp=1442857142, distance=7902.68212891, calories=645, steps=8021, step_length=0)
00013190 25 FILE_HEART_RATE_RECORD(heart_rate=134, _reserved=255, timestamp=1442857142)
00013197 3b FILE_INTERVAL_FINISH_RECORD(type=2, total_time=3240, total_distance=7903.86474609, total_calories=645)
000131a3 3a FILE_INTERVAL_START_RECORD(type=3)
000131a5 32 FILE_TREADMILL_RECORD(timestamp=1442857143, distance=7903.86474609, calories=645, steps=8023, step_length=0)
000131b6 25 FILE_HEART_RATE_RECORD(heart_rate=134, _reserved=255, timestamp=1442857143)
000131bd 32 FILE_TREADMILL_RECORD(timestamp=1442857144, distance=7905.04931641, calories=645, steps=8026, step_length=0)
000131ce 25 FILE_HEART_RATE_RECORD(heart_rate=134, _reserved=255, timestamp=1442857144)

Hi @mipapo, I actually wrote the treadmill-specific TCX export code (see #38).
I don't understand what you mean about "Laps" or "rounds" being missing...

Laps (either automatic time/distance laps, or manual laps) should not be missing in the TCX output.
I don't understand what you are highlighting in the ttbin file.

Hi @dlenski Please have a look at http://forum.runalyze.de/viewtopic.php?f=4&t=248 (Download the attachment of the first post). There is a ttbin file in there for which are no laps exported.
There is only the starting lap and end lap.
Rounds=Laps=Intervals
I just wanted to higlight this part:
00013197 3b FILE_INTERVAL_FINISH_RECORD(type=2, total_time=3240, total_distance=7903.86474609, total_calories=645)
000131a3 3a FILE_INTERVAL_START_RECORD(type=3)

These parts are missing.

For the purposes of the TomTom watches, a "Lap" and an "Interval" are not the same thing (there are two different ways of setting them up on the watch, and they're stored differently in the TTBIN file.
The TCX file format has no way of storing intervals per se, but it can store laps. So it seems like the solution you want is to divide up the TCX files into <Lap> tags according to the INTERVAL tags.
If that's what you want, it should be a fairly straightforward modification to export_tcx() to add an option to split the track at the start/end of intervals.
000000c5 39 FILE_INTERVAL_SETUP_RECORD(warm_type=2, warm=0, work_type=0, work=240, rest_type=0, rest=60, cool_type=2, cool=0, sets=12)
...
0000175a 32 FILE_TREADMILL_RECORD(timestamp=1442854142, distance=616.064208984, calories=51, steps=623, step_length=0)
0000176b 25 FILE_HEART_RATE_RECORD(heart_rate=143, _reserved=255, timestamp=1442854142)
00001772 3b FILE_INTERVAL_FINISH_RECORD(type=2, total_time=240, total_distance=618.713928223, total_calories=51)

... end </Lap> tag here, and restart new <Lap> tag ...

0000177e 3a FILE_INTERVAL_START_RECORD(type=3)
00001780 32 FILE_TREADMILL_RECORD(timestamp=1442854143, distance=618.713928223, calories=51, steps=625, step_length=0)
00001791 25 FILE_HEART_RATE_RECORD(heart_rate=143, _reserved=255, timestamp=1442854143)
00001798 32 FILE_TREADMILL_RECORD(timestamp=1442854144, distance=621.302307129, calories=51, steps=628, step_length=0)

Good to know that Lap/Interval are not the same, but for the TCX Laps/Intervals are - just like you said - laps, which are starting with the  and ending with .
        case TAG_INTERVAL_START:
                  fputs("<Lap>\r\n", file);
                break;
        case TAG_INTERVAL_FINISH:
                fputs("</Lap>\r\n", file);
                break;
```
For the TAG_INTERVAL_START must be a check whether it's the first Lap or not, because there would be two Starting Laps in the beginning of the export.
So if `lap_state` = 0 there should be no new lap created? (The several states of `lap_state` are not that clear to me in the moment)

Yeah, lap_state is a little confusing. Basically, the start/end laps are only written to a file when a GPS or treadmill record is encountered in the TTBIN file.

If lap_state == 0, then the next GPS/treadmill record is written to the TCX file with no extra lap processing.
If lap_state == 1, then a lap is begun prior to writing out the next GPS/treadmill record, and lap_state is set to 0 ready for normal record processing.
If lap_state == 2, then a lap is ended after the next GPS/treadmill record is written and lap_state is set to 1 ready to begin the next lap when another GPS/treadmill record is received.

It's done this way for a couple of reasons:

To make sure that there are no GPS/treadmill records outside of a lap.
To make sure that there is no empty lap at the end of the file - the next lap is only started if there is more GPS/treadmill data to follow.

I should really have used an enum. One of these days I'll get around to changing it...
If you simply write out the start and end tags for a lap as you posted above, you'll break the XML as the data is actually inside a <Track> record inside the <Lap> record. You'll also lose the summary information that is inserted in the TCX file at the end of each lap. I'd recommend using TAG_INTERVAL_START and TAG_INTERVAL_FINISH to set lap_state appropriately and let the existing code work to write the file. You'll have to experiment to see if this causes lost information though. It shouldn't, but will need checking.


Support for Elasticsearch 2.3.5

ERROR: Plugin [knapsack] is incompatible with Elasticsearch [2.3.5]. Was designed for version [2.3.4]
When it will be compatible with Elasticsearch 2.3.5?
Regards.

Elasticsearch 2.3.5 is Elasticsearch 2.3.4, it was just a version bump.

But I can't install the plugin due to that error. How can I install it?. Thanks.

Do you have any recommendations?

Hi,
I think it is working well with this change:

cd ~
wget http://xbib.org/repository/org/xbib/elasticsearch/plugin/elasticsearch-knapsack/<IP_ADDRESS>/elasticsearch-knapsack-<IP_ADDRESS>-plugin.zip -O knapsack_o.zip
unzip knapsack_o.zip -d ./knapsack
cd knapsack
sed -i 's/elasticsearch.version=2.3.4/elasticsearch.version=2.3.5/' plugin-descriptor.properties
zip -r ../knapsack_n.zip .
cd ..
rm -rf knapsack knapsack_o.zip
/usr/share/elasticsearch/bin/plugin install file:///~/knapsack_n.zip

should I to consider something else?
Thanks! It is an awesome plugin ;)


Switch to postgres

Approved, but I'm guessing you'll want to hold off on merging until the API, etc. are ready?


Use an up-to-date testing framework

The simpletest/simpletest library used to test the library is dead for all we know: the last release was almost 3 years ago (November 2015) with the last commit to the repository almost a year ago. I would suggest moving to a supported and better-known testing framework, e.g. PHPUnit. I could help rewrite some of the tests for PHPUnit, but didn't want to do so before getting an opinion from the maintainers on this. What's your take?

Hello @alcaeus !
Thanks for your feedback and your proposal, we really appreciate it  👍
I will take a look with @paulhristea very soon and we will keep you posted here about our choice, but that's definitively something we want to do as a short term enhancement !
Mickaël

Hello @alcaeus !
#274 will replace our outdated testing framework by PHPUnit, in our next SDK release 👍


Research Table Bug

Hey guys, I have a problem with Research Table. Whenever I open it, the game window doesn't respond immediately, so I have to restart the client to re-enter the server. And no crashreport is generated（This situation only occurs in multiplayer games, not in single player mode）,I don't know if this is a bug or if my mod settings are wrong,I hope someone can share how to fix it. Thanks！
（The core of Minecraft server is catsever/1.12.2   Thaumcraft-6.1 BETA26）

Hi, I know English very poorly, so I have to use a translator, sorry (((
try setting the option to close the launcher in the settings of your launcher after starting the game, it helped me, but it’s worth considering that there is no such option in the licensed launcher


Enhancement request - Workitem detail pane should include back/next/first/last/buttons

These buttons would be helpful when a user is scrolling through a list of workitems.

Back and forth keys should move the selection, across columns, once a WI is already selected.
Up and down keys should move the selection up and down the column of WI’s, once a WI is already selected.

This is a good question Len. Moving up and down with the arrows, was meant
to change the focus of the WI so that the content of the WI details pane,
if open could easily be changed and viewed.
Right now keyboard support for movement is through the menus, although we
have not reached a point where we have defined the access keys on the
menus. I will write a story for that now.
Monica
On Fri, Mar 24, 2017 at 10:42 AM, Len DiMaggio<EMAIL_ADDRESS>wrote:

Back and forth keys should move the selection, across columns, once a WI
is already selected.
Up and down keys should move the selection up and down the column of WI’s,
once a WI is already selected.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/fabric8io/fabric8-planner/issues/1210#issuecomment-289041689,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ARTwqwbMDYjLI1hkzOiklukJ3jvn5194ks5ro9ZJgaJpZM4MffCb
.

See:  https://openshift.io/openshiftio/openshiftio/plan/detail/1038


Fix key in version file

No longer needed with https://github.com/home-assistant/plugin-observer/commit/151d16f81286f6244a9818493dc2e1db164364ee


Cannot find ibCalendarDataSource and ibCalendarDelegate

(Required) Version Number: 8.0.0
Description
Cannot find ibCalendarDataSource and ibCalenarDelegate when following the tutorial
I followed all the steps, but I can't seem to find it.
Here is a screenshot of the issue

i guess you found it?


Better support for GitLab

So GitLab has in fact - inside changes URL, e.g.:
https://gitlab.com/release-it/release-it/-/compare/1.0.0..HEAD

So I added an option to detect this automatically or enable/disable it explicitly.

I'm also looking at #25. Would that work for you as well?

I think so. But it might be useful to document GitLab configuration in README so that people can just copy-paste it.

It works for me with the following configuration now:
    versionUrlFormats:
      unreleasedUrl: "{repositoryUrl}/-/compare/{tagName}...{head}"
      versionUrl: "{repositoryUrl}/-/compare/{previousTag}...{tagName}"
      firstVersionUrl: "{repositoryUrl}/-/tags/{tagName}"


Nuke gomobile before init

Including link to Android setup for React which was very helpful.
Also updating pods stuff.

@MarcoPolo
cc @keybase/updater-hackers

was removing the bin enough, or did you have to remove it from pkg or src too?

:mag_right: These commits introduced some visual changes:

Changed: Profile-Followed (before) (after)

Removing the bin seemed enough... i also did go get -u so maybe that was the issue too?


searchResults methods on a Paginated result

Hi!
me again. I'm searching using paginated results and using the new and marvelous Match::raw method. Everything is fine.
The problem is: I can't eagerload or lazy load nothing inside the paginated results.
$paginator = MyModel::boolSearch()
    ->must('match_all')
    ->paginate(10);

so, the paginator collection is not a searchResult collection and does not have the `$paginator ->getCollection()->models()'
My only option right now is to transverse each match and lazy load on each model wich is not enought.
If I find some time I wil try to set the paginated collection = to a searchresult and send you reports.

ok, so I did a quick changes just to try:
first, I created
<?php declare(strict_types=1);

namespace ElasticScoutDriverPlus\Support;

use ElasticScoutDriverPlus\Match;
use Illuminate\Database\Eloquent\Collection as EloquentCollection;
use Illuminate\Support\Collection;

class MatchsCollection extends Collection
{
    public function models(): EloquentCollection
    {
        $models = new EloquentCollection();

        $this->each(static function (Match $match) use ($models) {
            $models->push($match->model());
        });

        return $models->filter()->values();
    }
}

and on ElasticScoutDriverPlus\SearchResult I changed (just to try) the matches method to return this custom collection

    public function matches(): MatchsCollection
    {
        return new MatchsCollection($this->matches);
    }
``

Then, on the `paginate` method (ElasticScoutDriverPlus\Builders\SearchRequestBuilder`  I send a collection instead of array (this way the `LenghtAwarePaginator` uses that collection:
```php
        return new LengthAwarePaginator(
            $searchResult->matches(), // matches become the custom collection with the models method
            $searchResult->total(),
            $perPage,
            $page,
            [
                'path' => Paginator::resolveCurrentPath(),
                'pageName' => $pageName,
            ]
        );

This is just a quick test to see if it is possible. Thankfully your code @babenkoivan is as good as always!
What do you think? Should I try to send you a merge request with the formal solution?

Hey @Surt, I have plans to improve pagination. Most likely, SearchResult and a new Paginator will be implementing the same interface and therefore have the same set of methods: models(), documents(), etc.
But you can already get models from a paginator without any code changes: collect($paginator->items())->map->model();

Hey @Surt, I've just released v1.17.0. You can now use SearchResult methods on paginated results:
$paginator = MyModel::boolSearch()
    ->must('match_all')
    ->paginate(10);

$models = $paginator->models();

Looking forward to try it (and nose around the code :p) Thanks @babenkoivan


Custom font colors

Currently, there are only two options for font colors: white and black. We need to add the ability to use any hex value as the text color.
The Problem
The biggest obstacle standing in the way is the fact that the fonts used are bitmap fonts. Which means that they were manually exported (by me) in the colors they appear. Since it's obviously way too much work and not nearly customizable enough to generate lots of various colors (plus the bundle size would suffer massively), we need to figure out a way to generate color overlays for the existing colors.
The Solution
The solution I'm currently thinking is using the white font as a mask. I know that jimp allows for image compositing, so I think that's the best route to take.
Basically:

Initialize a new image (exact size as the target image)
Fill the background with black
Add the text exactly as it will appear on the final card (in white)
Initialize a new image with the hex color provided
Use the white/black text image as a mask over top of the color image
Composite the masked color onto the original card.

That should work. I've only just started using jimp, so I can't say for sure how powerful it is, but it seems to be extremely capable. So I'm sure there is a solution like mentioned above that could work. If not, I know jimp has support for blend modes, so that's another option (albeit a much more complicated and nuanced solution when dealing with custom background colors/images).
If you have any other ideas on how to handle this more gracefully, feel free to voice your opinion here. If you'd like to work on this issue, please leave a comment below to "claim" the issue so that I don't end up working on top of somebody else.

This is a pretty cool project. I've done some cursory searching, and it appears using something other than jimp might do the trick. GraphicsMagick has support for adding text of any hex color, if I understand this Stackoverflow correctly: https://stackoverflow.com/questions/28701457/how-do-i-change-the-color-of-text-im-drawing-with-node-graphicsmagick
That would require adding GM and ImageMagick as a dependency, which does sound like a pain. Have you considered something like this?

So the reason I went with jimp is because there are no external dependencies. ImageMagick or Cairo is for sure an ideal solution, but I don't think works in the context of gatsby. Mostly because there are a ton of people that use platforms like netlify for deployment, which AFAIK do not support installing any external non-node dependencies.
I couldn't personally find a more capable pure node solution other than jimp, but if you know of any let me know 😄

Fonts are, unfortunately, a bit of a complex issue with node. There's a bit of an explanation of why that is here: https://github.com/oliver-moran/jimp/issues/554#issuecomment-413939210
This specific issue with font colors isn't what I'm overly concerned about, I'm mostly concerned about custom font support. People will no doubt want to add in their own fonts, and I can add support for using custom fonts, but people will be required to generate their own bitmap font files. It's fortunately not very difficult to do so, but it's just a pain point that I'd rather not have.
Not sure if there are real alternatives though.

I found this repo which has a bunch of links to font processing libraries. I'm not on my dev machine now, but when I get back on it later tonight I'm going to run through the list to see if any of them could be useful in this scenario.
Worst case scenario, I'll build a tiny web app that is capable of importing ttf/otf fonts and converting them to bitmap font files for download. That way it will be as painless as possible to load your custom fonts in this plugin.

Hi 👋  First off, thanks for your work @garetmckinley ! This plugin piqued my interest and I became curious about exploring other options for using a monospace font without having to be bound by bitmap fonts (indeed, I deploy on Netlify :D).
I've created a fork here which uses this small Rust library I've created under the hood, via WebAssembly. It's just a proof of concept, but the results are promising so far.
I'm working on adding controls for fonts + colors, as well as frontmatter metadata (as far as I can tell the underlying Rust lib Fonterator should allow for cusom OTF/TTF fonts out of the box). I'm new to Rust+Wasm but the possibilities are pretty interesting! Any ideas are welcome. Thanks again.

@alessbell interesting! Thanks for sharing your solution :smile: are there any known issues with going that route?
I haven't done much work on this repo in a bit because I've been brainstorming other solutions before pushing this forward. I think the idea that I'm most fond of, is rendering the twitter cards on a react web page under the hood and then using node to render the html to an image. That way react markup could be used for custom styling on the card. I'm not sure whether it's entirely possible, but I'm going to dig into it at some point over the next week or two.
I'd definitely love to be updated about your solution! I don't know too much about rust aside from doing simple hello worlds, but I think it's a really strong potential solution. Especially with the performance gains from going wasm.

Since neither custom font families or colors are supported yet, is it possible to allow the user to pass in their own font file? That would solve both problems in one go.

Thanks for the response @garetmckinley, agree -- even something like this plugin that uses Puppeteer to render some HTML and take screenshots is a neat approach, too!
I ended up getting something basic working in my spare time (Fonterator turned out to be a bit buggy, so I'm using rusttype under the hood now), but gatsby-remark-twitter-cards now handles custom TTF fonts and text colors (cc @emgoto). You can also pass in a background image, or just a hex color for a solid background.

Thanks for the link to swyx blog! I see that he's using Netlify, so going forward that might be the optimal route. The biggest reason I didn't go outside Jimp was because of netlify compat with imagick. But if I can use puppeteer to render react to graphics on a netlify deploy, that's definitely where I'll push this plugin for the next release.
Your fork looks solid, very nice. Does the wasm library support netlify deploys?

Thanks! Yeah, I recently realized Netlify includes graphicsmagick and imagemagick in its base image. So any Netlify user would be able to use a plugin that depends on those out of the box, though other users would have to install those dependencies wherever their site is being built. The wasm library has no native dependencies, so it works for Netlify users and non-Netlify users alike.
I just came across another blog post on the topic with yet a different solution (it links to a swyx blog post in the prior art section). This lib uses Cloudinary to insert text over a base image via query param, a clever and surprisingly flexible solution, though one that requires a Cloudinary account and is still limited to certain fonts.


DO NOT MERGE Test build

DO NOT MERGE - Just a test
Invalid version, should fail the build.

Can we close this up, or mark it as draft, so it doesn't appear as a review request for the CODEOWNERS?


Default binding issue

[ ] Bug
[ ] Build issue
[V] Feature request

Version info

Angular: 7.2.12
Angular CLI: 7.3.8
countup.js-angular2: 7.1.0

Description
I need default binding.
For example, I create number type (100) class property, name is A.
then, I use the A to countup's endVal,
but it doesn't work.
This works with the endVal changed.

Hello @NoMoreViolence
Maybe you can try this way to put the default value.
<span [countUp]="score" [options]="options" [reanimateOnClick]="false"
>{{ score }}

But, I want animate default value too.

Should be fixed now, I pushed 7.1.1. Please close if the update fixes your issue.


Update/Add LLVM

Tool information

Tool name: LLVM
Tool license: Apache License v2.0 with LLVM Exceptions
Add or update? Add
Desired version: latest, current 10.0, 10.0.1 soon
Approximate size: 10.0: 160 MiB download size, 1.5 GiB installation size; 10.0.1 rc1: 228 MiB download size, 1.83 GiB installation size
If this is an add request:

Brief description of tool: LLVM compiler suite
URL for tool's homepage: http://llvm.org/ https://github.com/llvm/llvm-project/releases

Area for Triage:

C/C++
Question, Bug, or Feature?:

Feature
Virtual environments affected

[ ] macOS 10.15
[ ] Ubuntu 16.04 LTS
[ ] Ubuntu 18.04 LTS
[ ] Windows Server 2016 R2
[x] Windows Server 2019

Can this tool be installed during the build?
Yes, it's a NSIS installer. brief steps (not tried):

download the installer, https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.0/LLVM-10.0.0-win64.exe
silent install with LLVM-10.0.0-win64.exe /S

Tool installation time in runtime
Not yet tried.
Are you willing to submit a PR?
Will try.

now I use following command to install LLVM 10.0, it takes about 1 minute:
https://github.com/zufuliu/notepad2/runs/701136763?check_suite_focus=true#step:3:2
curl -Ls -o "LLVM-10.0.0-win64.exe" "https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.0/LLVM-10.0.0-win64.exe"
LLVM-10.0.0-win64.exe /S

Hi @zufuliu, thanks for reaching out with your suggestion. Considering the popularity of LLVM and concerns over maintenance we won't bake it into the image.


Download Selenoid logs files also when test fails

Coverage decreased (-0.003%) to 87.792% when pulling 60500ef10a0bba00b5bacd2546c4c1924eee2e1e on fix/ggr_logs into 756b21078f5c04010b9d5c392a3fec5a1c71c01e on master.

Coverage decreased (-0.003%) to 87.792% when pulling 60500ef10a0bba00b5bacd2546c4c1924eee2e1e on fix/ggr_logs into 756b21078f5c04010b9d5c392a3fec5a1c71c01e on master.


fix(build): update react native to fix flipper issues

This PR resolves PHIRE-732
Description

Updates react native to patch version that fixes build issues on Xcode 15.3
https://github.com/facebook/react-native/releases/tag/v0.72.12
PR Checklist

[ ] I have tested my changes on iOS and Android.
[x] I hid my changes behind a feature flag, or they don't need one.
[x] I have included screenshots or videos, or I have not changed the UI.
[x] I have added tests, or my changes don't require any.
[x] I added an app state migration, or my changes do not require one.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

update react native to fix Xcode 15.3 build issues - Brian

Need help with something? Have a look at our docs, or get in touch with us.

This PR contains the following changes:

Dev changes (update react native to fix Xcode 15.3 build issues - Brian)

  Generated by :no_entry_sign: dangerJS against 6eba09b0d4d5571090bc1f56c4db3eb361a21665

Do we need to follow up on Folio here as well?

yes we do :) : https://artsyproduct.atlassian.net/browse/PHIRE-733

gonna merge, tested that it is building on iOS and Android and think pretty low risk so would like to keep more devs from running into this but let me know if anything needs updates


proposal: testing: support naming seed corpus values provided with (*testing.F).Add

Seed corpus entries can be added to a fuzz test by calling (*testing.F).Add. There is no way to name these seed corpus entries, so they default to "seed#{num}". When run with go test -v, it will look something like this:
--- PASS: FuzzFoo (0.00s)
    --- PASS: FuzzFoo/seed#0 (0.00s)
    --- PASS: FuzzFoo/seed#1 (0.00s)
    --- PASS: FuzzFoo/seed#2 (0.00s)

The proposal is to allow a way to name these entries, much like you would with an execution of t.Run. This would help with error messages and debugging. We could do this a few different ways:

Amend f.Add to accept an optional first/last name string param. Since f.Add takes a []interface{} today, this is functionality that could be added later that wouldn't break backwards compatibility.

e.g. existing fuzz tests that look like this:
func FuzzFoo(f *testing.F) {
	f.Add("a3g1f3", 10)
	f.Add("----", 100)
	f.Add("", 0)
	f.Fuzz(func(*testing.T, string, int) {})
}

would change to
func FuzzFoo(f *testing.F) {
	f.Add("valid", "a3g1f3", 10)
	f.Add("invalid", "----", 100)
	f.Add("empty", "", 0)
	f.Fuzz(func(*testing.T, string, int) {})
}

We could add another method on *testing.F. For example:
(*testing.F).AddNamed(string, []interface{})

Originally proposed by @dnwe
/cc @golang/fuzzing

CC @dnwe

Since f.Add takes a []interface{} today, this is functionality that could be added later that wouldn't break backwards compatibility.

While this will work just fine for the call sites, it would make for a pretty tricky signature: args ...any, but if it begins with an extra string, that's actually the name.
It would be a lot saner if we did name string, args ...any. Is it too late for that? beta1 already shipped, but rc1 hasn't yet, and I don't imagine a lot of people have written native fuzzers yet. We could also leverage go fix to automatically fix fuzz funcs, or supply a gofmt -r expression that people can run.

2. (*testing.F).AddNamed(string, []interface{})

For completeness: I realise this is also an option, but leaving Add around as an extra is equally unfortunate, I'd say :) Having just Add(name string, args ...any) feels like the best result overall, especially as it mimics other methods like Run.

This proposal has been added to the active column of the proposals project
and will now be reviewed at the weekly proposal review meetings.
— rsc for the proposal review group

It's getting very late to change the API, so it's looking like AddNamed is the right approach?
Or maybe we don't need this feature at all?
Another possibility is to define a new string type like testing.FuzzName and then you could
f.Add(testing.FuzzName("myname"), "data")

but that's a bit verbose.

I reckon we're not late to change the API; this user report was given three weeks ago, a couple of weeks after the beta came out. That's very much within the timeframe that you would expect users to give the beta an honest try and report issues. At the time of writing there are 38 open issues with the release-blocker label, so I also reckon the RC is at least a couple of weeks away, and shouldn't be further delayed by a minor API change.
I do think we need this feature; if we say "one shouldn't need to name seed corpus entries", presumably the same could have applied to sub-test and sub-benchmark names :) And I still believe that altering Add while we still can is the best and most consistent approach long-term.

Also, if it comes between AddNamed and FuzzName, my vote would go for FuzzName; that way we avoid two "add" entrypoints, and it's clear which argument is the name versus the variable number of fuzz values.
Finally, just a thought: I seem to recall that the proposal review committee only meets once a week, and the RC isn't very far, so we should probably expedite a resolution here before more weeks go by and we really are too late.

I also reckon the RC is at least a couple of weeks away

It seems like we'll get beta2 next week, which seems to support my reasoning above - the RC is probably four weeks away or so. And, if we can manage to get this small change into master early next week, users can also test it as part of beta2 :)

I am not sure about the need to name specific seed values. This reminds me of the pets vs cattle discussion for managing computers.
Every test function we write is typically an important, unique, carefully tended thing (like a pet).
I am not convinced fuzzing seed corpus values are like that at all: do we really want the overhead of having to name them?
Seeds are usually small: why not just give the subtest for it a sequence number and then print the actual value when it fails?
We are talking about adding complexity, and I am not convinced we have established that the complexity is needed.
And it is very late in the cycle to add complexity that we're not sure we need.
(Package constraints just missed the cut! Is this really more important than that? And are we so sure?)

Perhaps you're right that not every seed corpus entry will need a name, but I think that already applies to sub-tests and sub-benchmarks - one can leave the name empty and they get a number instead. That seems like the best of both worlds to me.

Seeds are usually small: why not just give the subtest for it a sequence number and then print the actual value when it fails?

That assumption worries me a little; most of the fuzzers I've written take bytes or strings as input, and some of those inputs do get reasonably long fairly quickly when I want the seed corpus to also cover some particularly interesting and complex edge cases.
That said, if we think that unnamed seed corpus entries will be more common, then perhaps the FuzzName solution is a good middle ground. I can't say I have enough data to point one way or another.
I'm not sure if the comparison with package constraints applies; we can always add that package in 1.19, whereas we can't change the signature of testing.F.Add once it gets released :)

whereas we can't change the signature of testing.F.Add once it gets released :)

I don't think that adding the testing.FuzzName type would be a non-backwards compatible change to the signature of testing.F.Add if we were to add this in Go 1.19. Either way, the fuzz name should be optional. Given that, we could make both of the following testing.F.Add calls valid, whereas in Go 1.18 only the first would be:
f.Add("data")
f.Add(testing.FuzzName("myname"), "data")

testing.F.Add takes args ...any today, so we can certainly add an optional additional value later that will be processed as the name, once we've had more time to collect evidence.

I originally raised this merely as an API discrepancy rather than necessarily a strong desire for the capability.
My 2p would be that testing.F.AddNamed jars too much and doesn't fit with the rest of testing, so I'd personally discount that immediately.
I similarly think that the functionality we gain isn't worth the overhead and unintuitiveness of a special testing.FuzzName type).
If it's too late to make testing.F.Add match the arg style of testing.T.Run then personally I'd discount the feature and just add a note in the docs that if you want to name seed values then you should directly write to testdata/fuzz/Fuzz_Name/Seed_Name yourself

(I actually prefer storing my seed values under the testdata hierarchy anyway)

One option could be to combine ideas from #46780 and #47413 and add support for testing.F.Run:
func FuzzFoo(f *testing.F) {
    for _, tc := range []struct {
        name string
        s string
        expected int
    }{
        {s: "a3g1f3", expected: 10},
        {s: "----", expected: 100},
        {s: "", expected: 0},
    } {
        tc := tc
        f.Run(tc.name, func(f *testing.F) {
            // test tc
            if res := foo(tc.s); res != tc.expected {
                f.Errorf("foo(%s) = %d, want %d", tc.s, res, tc.expected)
            }

            f.Add(tc.s) // named tc.name
        })
    }

    f.Fuzz(...)
}

(I actually prefer storing my seed values under the testdata hierarchy anyway)

Interestingly, I prefer my seed values to be a part of the table-driver test.

@mvdan I would have thought that large seed inputs would be better handled as files under testdata/fuzz than placed in programs? Or are these mechanically constructed seeds?

Interestingly, I prefer my seed values to be a part of the table-driver test.

what do you do after fuzzing found an interesting input and dumps it in testdata for you to re-run against? Do you manually move it to your seed table or do you just discard it after you’ve fixed the crasher?

Do you manually move it to your seed table

That, with an expected result or error. For example: https://github.com/FerretDB/FerretDB/blob/main/internal/bson/double_test.go
(It would be nice to have some tooling for that or a function to read seed corpus files, but that's offtopic)

It sounds like this is either a likely decline or a 'on hold'. Given that we are not making changes for Go 1.18, perhaps it should be declined for now, and then a new proposal with a different API can be proposed if we need it?

I would have thought that large seed inputs would be better handled as files under testdata/fuzz than placed in programs? Or are these mechanically constructed seeds?

I admit I hadn't realised it was supported to add seed corpus entries directly as files while using custom names. Taking another look at https://go.dev/doc/fuzz/, I do see it's mentioned. If one seed input is too large to be named after its own value, then I think it's a reasonable tradeoff to instead include it as a named file.
I do have one case where I'm mechanically constructing reasonably sized seeds, but I'm not sure that it would be a huge problem either. I could always write a go generate program to construct the seeds and write them into testdata.

It sounds like this is either a likely decline or a 'on hold'.

I've grown less convinced that we need this feature right now as the conversation has progressed; declining for now seems reasonable.

Based on the discussion above, this proposal seems like a likely decline.
— rsc for the proposal review group


iPhone 7 problem

Please, check iPhone 7
Product type: iPhone9,1
Chip ID: 0x8010
Board ID: 0x08
When I do "gaster pwn", the device does not start after I upload all the files: ibec, ibss, devicetree, kernel.
For example when I do pwn mode through "ipwndfu -p && ipwndfu --patch" and upload the same files then the device starts correctly.

Please, check iPhone 7
Product type: iPhone9,1 Chip ID: 0x8010 Board ID: 0x08
When I do "gaster pwn", the device does not start after I upload all the files: ibec, ibss, devicetree, kernel. For example when I do pwn mode through "ipwndfu -p && ipwndfu --patch" and upload the same files then the device starts correctly.

not gaster issue,
comparing with ipwndfu not helpful for your issue with loading patched bootchain on device, from my end tried : 9,1/9,2/9,3/9,4 only pwn with gaster and all fine and first try
so not gaster issue 100%


Add smoothing for Translation Handles

Describe the problem
Currently there's smoothing for Rotation and Scale but not for the newly added translation handles.
Describe the solution you'd like
Add smoothing for translation handles.
(Also consider moving smoothing parameters into the handles configurations)

We appreciate your feedback and thank you for reporting this issue.
Microsoft Mixed Reality Toolkit version 2 (MRTK2) is currently in limited support. This means that Microsoft is only fixing high priority security issues. Unfortunately, this issue does not meet the necessary priority and will be closed. If you strongly feel that this issue deserves more attention, please open a new issue and explain why it is important.
Microsoft recommends that all new HoloLens 2 Unity applications use MRTK3 instead of MRTK2.
Please note that MRTK3 was released in August 2023. It features an all new architecture for developing rich mixed reality experiences and has a minimum requirement of Unity 2021.3 LTS. For more information about MRTK3, please visithttps://www.mixedrealitytoolkit.org.
Thank you for your continued support of the Mixed Reality Toolkit!


Handle the case in which the attribute value is not a map in derived format

Currently this would fail with a null pointer exception:
case class Thing(foo: String, bar: Int)
DynamoFormat[Thing].read(new AttributeValue().withS("whatevs")) // throws NPE

sealed trait Base
case class Foo(f1: String) extends Base
case class Bar(f2: Int) extends Base
DynamoFormat[Base].read(new AttributeValue().withS("whatevs")) // throws NPE

This PR should fix it and return an error.
I can add tests if required.

Sorry have been rubbish at keeping up with things lately. This looks sensible. A test would be lovely, but not required.

Added two simple tests which should reproduce the problem. Also modified the way it's checked that the AttributeValue is a map. I had initially done this inside the derived implementation but the problem with doing this is that in the hcons case we are restricted to return an InvalidPropertiesError which may not make sense to do here, given that it's not just a specific property error, but a structure error. Let me know what you think.

I've had a quick look at this, it's a good spot.  I was wondering if it would be more appropriate to move the checking to the point where it's used rather than doing it preemptively?
More specifically, I believe that we could do the null check just before the asScala conversions, to keep the java->scala boundary in one place. i.e. Option(av.getM).map(_.asScala)  Then we can decide what to do in that one place.
It would be on lines:
https://github.com/scanamo/scanamo/blob/10faff7c922e039e2f80b5426239c365181a44a5/formats/src/main/scala/com/gu/scanamo/DerivedDynamoFormat.scala#L39
https://github.com/scanamo/scanamo/blob/10faff7c922e039e2f80b5426239c365181a44a5/formats/src/main/scala/com/gu/scanamo/DerivedDynamoFormat.scala#L74
Any thoughts about this?

@johnduffell that was my initial approach. Problem is that for the hcons case we are restricted to return errors of type InvalidPropertiesError which I'm not sure is the adequate one for this situation.
I think we can start by deciding which error we want to return. We probably want this error to be the same in both cases. My idea was a single TypeCoercionError(new Exception(s"Expected $av to be a map")) error. Any opinion about this?

Hello @miguel-vila , I'm open to widen the error channel in ValidatedPropertiesError[T] and ConstructedDynamoFormat[T] to DynamoReadError, so that this limitation is lifted and you can move check at the calling site. If you have appetite to do that, we can get this merged! Thanks a lot for your contribution.

100% onboard with that change, so feel free to reopen when/if you have appetite for it.


On switching default contact, app doesn't allow to access workspace created by other contacts

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open the app and login with user which has verified secondary contact method
Open settings
Open workspaces
Click on new workspace
Change default contact to secondary contact method
Again open settings
Open workspaces and click on workspace created in step 4

Expected Result:
App should allow user to access their own workspaces if they change default contact method.
Actual Result:
App does not allow user to access their own workspaces if they change default contact method.
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

Version Number: 1.3.29-2
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/a0592395-b84a-4f63-8ce4-cad8cff0f24a
https://github.com/Expensify/App/assets/43996225/1943dd40-515b-4dfb-b9dc-3f7a9ecbd68d
Expensify/Expensify Issue URL:
Issue reported by: @dhanashree-sawant
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1686583034487009
View all open jobs on GitHub

Seems like a dupe https://github.com/Expensify/App/issues/20741

Hi @Natnael-Guchima, the following issue was reported 1 day before on slack then that issue.

Seems to be fixed, so going to close. Commented in the other issue about the bug report.


Vagrant on MacOS fix information

PR adds a hint regarding vagrant/virtualbox fix - from https://stackoverflow.com/questions/18149546/macos-vagrant-up-failed-dev-vboxnetctl-no-such-file-or-directory.
See also
https://cilium.slack.com/archives/C03EV7KJPJ9/p1660806156966189?thread_ts=1660693909.096529&cid=C03EV7KJPJ9
PR is currently cumulative with (the tiny) #33, can rebase if/when #33 is merged.
/cc @kkourt

e2e test failure seems unrelated, retrying.


Create consistency between area widgets and singletons

It would seem an area widget that is empty gets an apos-empty class on it. The div also gets a class of the widget name. Singletons don't get either, just a data-type property. Would be good to pick a pattern that exposes the most information in the best way and make sure they both implement the same pattern.

Further issues arise in that an empty area widget will keep it's height for controls when empty and editable, but collapse completely when not editable. This doesn't seem to be the case with singletons, as they also are missing any classes signifying if they are editable.

The effort to solve this is being performed in issue #380, closing duplicate.


Create UpdateBackupOffering API

Description
This PR intends to create a new API to allow users to edit name and description of Backup Offerings.
Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] New feature (non-breaking change which adds functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[ ] Major
[x] Minor

Screenshots (if appropriate):
How Has This Been Tested?

I imported a new Backup Offering;
Using cloud-monkey, I changed the name of this Backup Offering, and checked, in DB, UI and listBackupOfferings API if the change was performed correctly;
Using cloud-monkey, I changed the description of this Backup Offering, and checked, in DB, UI and listBackupOfferings API if the change was performed correctly;
Using cloud-monkey, I changed the name and description of this Backup Offering, and checked, in DB, UI and listBackupOfferings API if the change was performed correctly.

Also, I added some unit tests.

@blueorangutan package

@DaanHoogland a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 1418

it is only an API level change and unit tested, I think we can merge without further ado!? cc @nvazquez

@DaanHoogland lets start a round of tests
@blueorangutan test

@SadiJr can add button in UI to edit backup offering name and description?

@rhtyd I will do this, but in another PR, as they are different contexts. Right now, the API is addressing our needs here :)

@blueorangutan package

@nvazquez a Jenkins job has been kicked to build packages. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 1450

@blueorangutan test

@blueorangutan test

@nvazquez a Trillian-Jenkins test job (centos7 mgmt + kvm-centos7) has been kicked to run smoke tests

@nvazquez why assign @borisstoyanov to this PR?

Trillian test result (tid-2244)
Environment: kvm-centos7 (x2), Advanced Networking with Mgmt server 7
Total time taken: 37672 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr5511-t2244-kvm-centos7.zip
Smoke tests completed. 90 look OK, 0 have errors
Only failed tests results shown below:

Test
Result
Time (s)
Test File

Hi @GutoVeronezi, @borisstoyanov will perform manual tests on this PR


Issue #278: Support skipping of Member for a Type on serialization without MessagePackIgnoreAttribute

These implementation, allows to serialize objects without design time define object's member needs to skip serialization. These is very helpful in case where applications which reuse existing code and APIs needs to transfer data between tiers, while API call uses shared objects, which have all property populated, while caller on that APIs not interested or required all values, but because of shared logic and objects, it serialized everything. and its not possible to mark object on designtime as based on API, object members populated values required while for other it may not.

Hi @yfakariya, I have fixed review comments.

Thank you! I will merge this to master after Xamarin and Unity fixes including #283

It is time to merge! thank you!


Tox install command missing from HACKING

:+1:

The container installs/upgrades tox upon creation, so not sure this is a required step in HACKING.
docker/Dockerfiles/goldstone-app (master)]$ grep tox docker_entrypoint.sh
    pip install --upgrade tox

Hmm... I added this because I deleted the app and db containers (docker rm goldstoneserver_gsappdev_1, etc...), and then re-started the VMs (bin/start...).  When I tried to run pep8 after everything finished, tox wasn't installed.
Does this mean there's something extra done when a container is created, over what is done when it's re-created?

ok, let's leave this tox statement in HACKING for now then.  It's probably an image versioning thing.  @heidecke and I are working through all that as we speak.
:+1:


sharing to Facebook doesn't take into account specified text

Following this example, Facebook doesn't set the text of the share dialog to "Google Search Page"
 $("#shareIconsCountInside").jsSocials({
     url: "http://www.google.com",
     text: "Google Search Page",
     showLabel: false,
     showCount: "inside",
     shares: ["twitter", "facebook", "googleplus", "linkedin", "pinterest", "stumbleupon", "whatsapp"]
 });

Please, checkout this issue https://github.com/tabalinas/jssocials/issues/8


BLE has no service

Hi, thank you so much for sharing your mikoto repo, I printed the mikoto pcb and loader zmk software in the pcb. But I can't connect the hid ble sevice, seems the ble signal has no advertised service

i can't tell if this is a hardware problem or a software issue (with zmk). are you able to load up a simpler firmware (eg. just something that makes a BLE beacon) and see if the antenna works?
check the component placement and soldering as well. which revision did you print?

I use the revision 5.20 for print. And flash the bootloader and zmk you mentioned. Are there any recommended programs to flash just for test the ble.

you can get get bluemicro board support package for nrf52840, and use something like this https://learn.adafruit.com/bluefruit-nrf52-feather-learning-guide/advertising-beacon to test it out

I recheck my bom list. found that I use 32mhz 8pf as the crystal rather than 32mhz 12.5pf you used. Is this the main reason？I try to replace a 12.5pf crystal on it.

that could be the possible culprit; afaik the HF crystal is used for timing bluetooth packets, so if the capacitance is out of spec then the frequency could deviate enough that bluetooth won't work.
you can either replace the crystal, or replace the load capacitors with something that'll work for a 8pf crystal.

After replace the crystal, I finally successfully connect to the board by ble!
Thanks for you help !!!


Update annotation workflow

I took a pass through and updated what I thought was necessary.

eggNOG-mapper is now updated to the most recent version.
Documentation describes how to generate the reference databases
More informative logging messages are presented when the required database files cannot be found


Release Arrow 19.0.0 (next release after 18.0.0)

Planned Release Candidate: 2022-07-22
Planned Release and Publish to crates.io: 2022-07-25

Items:

[x] Update changelog and readme: https://github.com/apache/arrow-rs/pull/2120
[x] Create release candidate https://lists.apache.org/thread/txw3hlm06qjwczcbn20mjlgp7gf178fc
[x] Release candidate approved https://lists.apache.org/thread/3stno7fw741bpxo81s0fph80cbcymztq
[x] Release to crates.io
[x] Draft update to DataFusion: https://github.com/apache/arrow-datafusion/pull/2955

See full list here:
https://github.com/apache/arrow-rs/compare/18.0.0...19.0.0
https://github.com/apache/arrow-rs/issues/1952
cc @viirya @jhorstmann @tustvold @sunchao @HaoYang670

https://lists.apache.org/thread/3stno7fw741bpxo81s0fph80cbcymztq -- completed

Next release will be tracked in https://github.com/apache/arrow-rs/issues/2172


#2284, #2310

#2284 Remoteness should be displayed visibly at all times
#2310 Connection manager tries to pass remote URL as local

:+1:

:+1:


Cannot override iOSUIKIT React Native with Styled-Component

I would like to override color of iOSUIKIT. So I have this :
import { iOSUIKit } from 'react-native-typography';

const TitleList = styled(Text)`
    color: red;
    text-transform: uppercase;
`;

<TitleList style={iOSUIKit.footnoteEmphasized}>Profil</TitleList>

This text is black and stays black instead red :/
But text-transform works fine.

They might just not allow this customization :/ not all RN components are style-able unfortunately


The email sent when an IRTF charter is approved needs adjustment.

Currently the email appears to come from the IESG and does not copy irtf-announce. It does copy ietf-announce. Should it continue to do so?
cc: @csperkins, @cindymorgan

This should come from<EMAIL_ADDRESS>and be sent to<EMAIL_ADDRESS>with a copy to<EMAIL_ADDRESS><EMAIL_ADDRESS>the RG, and the RG Chairs.

Also, we should check the message body doesn't say "The IESG has approved…"

@csperkins You wanted the email cc'd to<EMAIL_ADDRESS>but that doesn't happen for WGs? Should it happen for RGs?

Questions that might expand the scope of this ticket:
There's a second email that gets sent when the charter is approved:```

@pselkirk it should copy<EMAIL_ADDRESS>because the IAB approves IRTF RF Charters (whereas it's the IESG that approves IETF WG charters)

  From: IETF Secretariat<EMAIL_ADDRESS>  To<EMAIL_ADDRESS>  Subject: Regarding RG <acronym>: Charter state changed to "Approved"

This should probably be To<EMAIL_ADDRESS><EMAIL_ADDRESS>
Should other email templates be adjusted for the IRTF?

Possibly, although I'm not sure what other templates exist.

The above message goes into the secretariat's ticketing system currently and they are the only recipient. It would not be correct to change that message. If we also want a message sent to the irtf-chair and irsg it should be a separate email.
cc @cindymorgan

Should other email templates be adjusted for the IRTF?
If you see something that seems obvious, ask about it. Otherwise, keep this to the scope in the issue title please.

The above said, #6460 addresses this issue and I'm going to merge that and close this issue. Any other messages or templates that we identify can be handled in their own issues.
Also, on reflection:

The above message goes into the secretariat's ticketing system currently and they are the only recipient. It would not be correct to change that message. If we also want a message sent to the irtf-chair and irsg it should be a separate email.

We should not send a separate email in this case - the message being modified by #6460 is enough. The message pointed to is only to trigger a process at the secretariat to followup on potential manual setup for newly formed or rechartered groups.


Retryer should work for Runnables

If a method is added to Retryer to handle a Runnable it will make usage with some lambdas a bit easier. The new method will not have to throw ExecutionException.

Fixed in PR #26.

Merged to master


Return trade data from Augur Node for trading page redesign

In order to implement the new Trade History (https://github.com/AugurProject/augur/issues/724) & Filled Orders (https://github.com/augurproject/augur/issues/731) sections of the trading page redesign, Augur Node will need to be modified.
Tom proposed the following spec for the data returned by a new Augur Node endpoint in the comments of https://github.com/AugurProject/augur/issues/724. (This data would be sorted by timestamp in descending order, and the UI would then do the grouping of these orders by date, since it is dependent on the user's local time.)
marketId:[ {
amount,
price,
timestamp,
outcome,
orderType,
filler,
creator,
tradeGroupId
}]

Alternatively, this info could be returned by an existing endpoint if that would make more sense.

Which function(s) are you referring to? Phoebe had asked if we could get this info from AN, and when I suggested using augur.trading.getUserTradingHistory, she pointed out that it doesn't indicate if the order is filled, and it doesn't group the trades in the way we'd like.

There is a endpoint to get market price history. ‘getMarketPriceHistory’ its used in the UI, not sure what for but we can extend it to include more fields. It could be used for filled orders and user trades without all the PL position extra stuff.

@epheph If you are still planning to work on some things during the break next week, please work on this task first, since it is required by 2 tasks for the trading page redesign (which we are still hoping to launch 2 weeks before the Super Bowl). It's been updated with the spec Tom provided.

Fixed by https://github.com/AugurProject/augur-node/pull/757


Add the missing python image declaration in README

Hi @yuezhuangshi , thanks for your contriubution.
I think we are missing docker image declaration in README.md. Can you help us add it in another PR?
Originally posted by @JohnNiang in https://github.com/kubesphere/devops-agent/issues/31#issuecomment-902396668

/assign

/assign


New-AutoSensitivityLabelRule -HeaderMatchesPatterns

When using the "HeaderMatchesPatterns" parameter, providing a Hash Table (as per the documentation) with Header and String pattern creates a Rule that contains the Header and then a separate rule for each character in the Match string, e.g.
New-AutoSensitivityLabelRule -Name "test" -Policy "PolicyName" -HeaderMatchesPatterns @{"Header"="String"}
Produces a rule containing:
Header: S
Header: t
Header: r
Header: i
Header: n
Header: g
Any attempt to force the use of a strong type in PowerShell results in the same output. Inserting a premade hash table (defining a variable and substituting it in the input for -HeaderMatchesPatterns) produces the same result. Any attempt to provide data other than a Hash Table results in a mismatched type error.
This rule can be created correctly in the M365 portal GUI, but then providing the hash table output by the Get-AutoSensitivityLabelRule (in the HeaderMatchesPatterbns value) back to Set-AutoSensitivityLabelRule or New-AutoSensitivityLabelRule provides an invalid input error.
Is this a bug with the input, or user error?

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 324976b7-f841-b9c1-1daa-57b64f79d31d
Version Independent ID: 3125eaae-6015-7d4b-f15d-f4fe88b08a8f
Content: New-AutoSensitivityLabelRule (ExchangePowerShell)
Content Source: exchange/exchange-ps/exchange/New-AutoSensitivityLabelRule.md
Service: exchange-powershell
GitHub Login: @chrisda
Microsoft Alias: chrisda

@StephenM-CC, you should open a support ticket about this. Report back with any findings that can help improve the documentation.


Removed unused functions and methods.

We don't need to time the functions with python code anymore, we can just do:
pytest --durations=10 path/to/test/file.py

@pkan2
You are owner of some files modified in this pull request.
Would you kindly review the changes whenever you have the time to?
Thank you very much.