Bitmanip

This should be an initial version thats mergeable, but not fully done yet.
Current TODO list that I'd open as an issue:

Push changes to NaxSoftware so that we can have proper benchmarks - I'd not go for full combinatorics here, that would explode the number of images that we need, also needs a few changes in the regression (also the reason why I'm not yet adding the arch flags)
optimize the current ZbbCountPlugin, the comb path should be horrific ATM
possibly make the current situation with ZbPlugin.make cleaner, though not sure how... Zbb should not be a single plugin IMO

Soooo many plugins <3
I sent you rights to the NaxSoftware repo.
Feel free to merge :)
Thanks :D

I'd not go for full combinatorics here

Right ^^
So, fondamentaly, as long as there is no coupling between sub parts of the extension, i would say no need to handle them separatly in the binaries.

In the number of plugins: I kept them separate where there is no real reuse of hardware, so that a plugin is useful on its own and there is no big overlap...
On the combinatorics: to some degree there is overlap in the benchmarks...

On the combinatorics: to some degree there is overlap in the benchmarks...

Right XD
I would say, let's keep full B extentions for now


Update Headers Env Routes Integration Test to use Rust SDK.

Following up on #534 for #216, this updates the headers-env-routes-test test binary used by spin's integrations.
Signed-off-by: elias<EMAIL_ADDRESS>

Realizing I jumped the gun because the integration is now failing. I probably won't have the time to sit down and correct the test behavior until tomorrow night or Tuesday (so apologies on my part) but my debugging seems to indicate that I entirely failed to insert the headers??? :upside_down_face:

Hi @ejmg, thank you for your help in updating tests to use the SDK.  We've now closed out the issue tracking these updates (https://github.com/fermyon/spin/issues/216) and so I'll close this Draft PR.  (Thanks for laying the groundwork in this PR as well!)


download not working

So neither bandcamp-get-music -a nor -t work. There are no errors and it shows "downloading the album... from ..." but when finished the music is nowhere to be found. I used search everything and the music is not on my pc. I tried reinstalling the latest version but that didn't work either.

Since this module was last updated, Bandcamp has made changes to the way they store audio that probably broke this tool.

@redbrain you right. Quickly checked and they are approaching it the same way most stream platforms do now - by partially sending the content. Good for then.
But also, I might have some ideas of how to bypass it so I'll look into it if I ever have time. Feel free to fork, clone or change this piece of code as its already showing its age.


Postfix install config staging

New ansible role for installing and configuring postfix as a mail relay using smtp2go. Playbook and host_vars updated to test on staging.

This looks good to me. Could you please rebase this after the requirements PR update is merged, then run 'make update-roles' before running the staging playbook?


Integrate template icons

Closes #106
Depends on https://github.com/bpmn-io/element-templates-icons-renderer/pull/2
Depends on https://github.com/bpmn-io/bpmn-js-properties-panel/pull/641

The way the icons are implemented means:

I get both icons on canvas and in the properties panel header when I use camunda-bpmn-js
Same as above if I install bpmn-js-properties-panel and @bpmn-io/element-templates-icons-renderer in a project without camunda-bpmn-js
My properties panel displays the icon in the header but I cannot see it on canvas when I build custom bpmn-js project without @bpmn-io/element-templates-icons-renderer

Do we intend to keep (3)? Perhaps the icons renderer should be required as a part of the element templates module -> to be extracted to a separate element templates package in the future.

I thought about this one and given the current situation (element-templates as part of the properties panel) I found it strange to include rendering parts in the properties panel. However, I'd love to see the element templates be a standalone module. We should definitely tackle this in Q2 IMHO.

@pinussilvestrus is out sick today, but this is super well prepared and the dependencies are met. I am marking this as ready for review.

We need to release and integrate another alpha of bpmn-js-properties-panel to merge it.

Back to draft. I realized, we should also bump prop-panel to integrate the latest fix

Icons arrived

Back to draft, waiting until we have https://camunda.slack.com/archives/CKGH9LR40/p1649155653797739 fixed

Works with fix :-)


precache unconditionally removes old assets upon activation breaking existing tabs

Library Affected: workbox-precaching
Browser & Platform: all
Issue or Feature Request Description:
If I generate a service worker that uses skipWaiting in order to immediately starting serving new assets upon browser reload, then the new service worker unconditionally removes other assets from the precache upon activation, potentially breaking any browser tabs that were loaded from an earlier service worker.
While this is a relatively well-known problem mentioned in the service worker lifecycle documentation:

Tip: You can speed up activation of updated service workers by calling self.skipWaiting, but this may be a bad idea. The old service worker may have handled fetches during page startup, but the new service worker then takes control later on. This can break stuff like lazily-loaded subresources until the next navigation request.

It strikes me that, for an app whose build process creates immutable artifacts through the use of unique URLs, this problem could be mitigated by simply leaving old assets in the precache until a later point at which older tabs have closed.
In order to implement such a solution while using generateSW, I would like to have some option that can skip the precache cleanup logic.
Illustration:
When my app is loaded in a new tab, the service worker activates and updates the precache, including pruning other assets:

If I switch back to another tab that was already open, and attempt to access some asset that is imported dynamically, I get a loading error because the asset was purged, and the app is unexpectedly broken:

Minor clarification:  I'm testing against Workbox 5.1.4 via the latest version of ember-cli-workbox, although I linked to the v6 code in the description that has the same logic.
FWIW I was able to workaround this issue by monkey-patching the activate function using inlineWorkboxRuntime: true and the following file passed to importScripts:
logger.log('Patching PrecacheController.activate to workaround https://github.com/GoogleChrome/workbox/issues/3126');
PrecacheController.prototype.activate = () => {}

Following is an improved script that defers running cleanup until all pre-existing clients have closed:
/* globals PrecacheController, logger */
(function deferPrecacheCleanup() {
  /*
   * Replace PrecacheController.activate() with a function that captures the ids of clients that may have loaded
   * prior to this service worker being activated, so we can defer cleanup until all such clients are closed.
   */
  const originalActivate = PrecacheController.prototype.activate;
  let originalClientIds, precacheController;
  PrecacheController.prototype.activate = async function patchedActivate() {
    precacheController = this;
    originalClientIds = new Set((await self.clients.matchAll()).map(client => client.id));
    if (originalClientIds.size) {
      log('Deferring precache cleanup due to pre-existing clients', originalClientIds);
    } else {
      performCleanup();
    }
  }
  log('Patched PrecacheController.activate to workaround https://github.com/GoogleChrome/workbox/issues/3126');

  function onFetch(event) {
    if (event.request.mode === 'navigate' && originalClientIds) {
      pruneRemainingClients();
    }
  }
  self.addEventListener('fetch', onFetch);

  function pruneRemainingClients() {
    originalClientIds.forEach(async(clientId) => {
      if (!(await self.clients.get(clientId))) {
        originalClientIds.delete(clientId);
        log('Removed ' + clientId + ' from pre-existing clients', originalClientIds);
        if (!originalClientIds.size) {
          performCleanup();
        }
      }
    })
  }

  function performCleanup() {
    self.removeEventListener('fetch', onFetch);
    log('Performing precache cleanup now');
    originalActivate.call(precacheController);
  }

  function log() {
    if (logger && typeof logger.debug === 'function') {
      logger.debug.apply(logger, arguments);
    }
  }
})();

Build requirements:

This requires inlineWorkboxRuntime: true so the PrecacheController is in scope of the imported script.
This also requires the PrecacheController class name to exists as-is, i.e. to not be mangled as is the default in production mode.  Either use a different mode or update the mangle options to include reserved: ['PrecacheController']

Note:
This implementation checks for missing clients only when some controlled window is navigated, so it may not clean up as aggressively as possible in the following scenarios.

It receives no notice when a client window is closed or navigated out of scope.
The lack of browser support for replacesClientId prevents it identifying the reload or navigation of existing window, so it cannot determine that the existing client will soon be closed.  It takes another reload or other navigation fetch event before it can detect that the original client was closed.
It does not attempt to detect fetch events from reloaded workers.

If desired this could be improved through the use of a timer that periodically checks the remaining clients.

It's probably worth addressing why one would precache assets that are loaded dynamically by the application.  Certainly precaching will force the assets to be downloaded automatically, so network bandwidth and its consequent impact on load time is essentially the same as if the assets were statically compiled.
Even so I think it is still valuable to defer loading assets unnecessarily into the app, since it relieves the browser of the need to parse and execute them on page load, which may be non-trivial for larger assets, and can improve page load times and memory consumption.

Updates for v6 in patchedInstall and performCleanup to pass event argument into original install/activate methods (as well as changing this._cacheName to this.strategy.cacheName):
  const originalInstall = PrecacheController.prototype.install;
  PrecacheController.prototype.install = async function patchedInstall() {
    const result = await originalInstall.apply(this, arguments);
    await preserveCacheKeys(
      this._urlsToCacheKeys || this[/\breturn this\.(\w+)/.exec(PrecacheController.prototype.getURLsToCacheKeys.toString())[1]],
      this.strategy.cacheName || /\bself.caches.open\(this\.([\w.]+)\)/.exec(originalActivate.toString())[1].split('.').reduce((obj, key) => obj[key], this),
    );
    return result;
  }

  ....

  function performCleanup() {
    self.removeEventListener('fetch', onFetch);
    removeLegacyUrls();
    log('Performing precache cleanup now');
    originalActivate.call(precacheController, new ExtendableEvent('activate'));
  }

Hi there,
Workbox is moving to a new engineering team within Google. As part of this move, we're declaring a partial bug bankruptcy to allow the new team to start fresh. We realize this isn't optimal, but realistically, this is the only way we see it working. For transparency, here're the criteria we applied:

For PRs, we closed everything that doesn't target the current v7 branch.
For Issues, we closed everything that was created before 2024.

Thanks, and we hope for your understanding!
The Workbox team


CryptographicException: Keyset does not exist

          but when i do a nev certificate i still get error

Error requesting certificate "[Manual] project.iztoknet.com"
System.Security.Cryptography.CryptographicException: Keyset does not exist
at System.Security.Cryptography.X509Certificates.StorePal.Export(X509ContentType contentType, SafePasswordHandle password)
at System.Security.Cryptography.X509Certificates.X509Certificate2Collection.Export(X509ContentType contentType)
at PKISharp.WACS.DomainObjects.CertificateInfo..ctor(X509Certificate2Collection rawCollection)
at PKISharp.WACS.DomainObjects.CertificateInfoBc.GenerateInner(Pkcs12Store store, X509KeyStorageFlags flags)
at PKISharp.WACS.DomainObjects.CertificateInfoBc..ctor(Pkcs12Store store)
at PKISharp.WACS.Services.CertificateService.CreateAlternative(Byte[] bytes, String friendlyName, AsymmetricKeyParameter pk)
at PKISharp.WACS.Services.CertificateService.DownloadCertificate(AcmeOrderDetails order, String friendlyName, AsymmetricKeyParameter pk)
at PKISharp.WACS.Services.CertificateService.RequestCertificate(ICsrPlugin csrPlugin, Order order)
at PKISharp.WACS.OrderProcessor.GetFromServer(OrderContext context)
Originally posted by @iztokba in https://github.com/win-acme/win-acme/issues/2582#issuecomment-2118766117

I'm not able to immediately reproduce this. Can you provide the full log?

log-20240518.txt
here is the ful log

It's a weird error that I can't really explain, but here is a build with a potential fix and also adding some more logging that might provide additional hints. Please try it if you get a chance.
https://ci.appveyor.com/project/WouterTinus/win-acme-s8t9q/builds/49841629/artifacts

I wonder if the ephemeral key used in creating the temp pfx is being lost before the export somehow, I think you may need to PersistKeySet if using MachineKeySet (in your fallback) though as I think the export will try to read from disk not from memory. dotnet calls out to OS functions that are quite old: https://learn.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-pfxexportcertstore

This version also does not work, when you want to renew the certificate, the error is still present.
The log document is attached
log-20240519.txt

i see new error: The local system certificate with footprint fc 15 ee f6 66 2b c4 94 dc 26 bd ab 2f 85 d3 b4 58 e9 62 df is about to expire or has already expired.
mybe is this the problem

dotnet calls out to OS functions that are quite old

Ugh, indeed. Dealing with X509Certificate2 and the like feels like crawling through broken glass sometimes because it's hiding so much from what happens in the background. I'm tempted to go full BouncyCastle for as much code as possible, but I'm also afraid of subtle edge cases that people have come to rely on. Perhaps that'd be a version 2.3 thing.
Anyway, I tried your suggestion of adding the PersistKeySet flag (which makes sense because we also do that for the actual store), so hopefully that solves @iztokba's issue. See build 1685: https://ci.appveyor.com/project/WouterTinus/win-acme-s8t9q/builds/49843242/artifacts

I also have the same issue. The .1685 doesn't solve the problem.

This seems to be a new bug introduced in 2.2.9, I'm revoking the release and gone back to testing.

I'm currently working on a fix for this by moving to BouncyCastle as much as possible for certificate and key handling, only at the very final stages of the Certificate Store plugin it will be moved to Windows, hopefully keeping the "Bad Data" bug away while also not running into this error.
There's a lot of testing to be done yet with different store types and settings, but anyone feeling adventurous can try build 1688 here: https://ci.appveyor.com/project/WouterTinus/win-acme-s8t9q/builds/49844762/artifacts

Thanks for trying to achieve a fix, but this isn't also working.
[VERB] Autofac: creating PluginBackend<IStorePlugin> scope with parent PluginBackend<ICsrPlugin>
 [VERB] W3SVC detected and running
 [VERB] FTPSVC detected and running
 [INFO] Store with CertificateStore...
 [INFO] Installing certificate in the certificate store
 [WARN] Error converting key to legacy CryptoAPI, using CNG instead.
 [VERB] System.Security.Cryptography.CryptographicException: Der Schlüsselsatz ist nicht vorhanden.
   at System.Security.Cryptography.CngKey.Open(String keyName, CngProvider provider, CngKeyOpenOptions openOptions)
   at System.Security.Cryptography.X509Certificates.CertificatePal.GetPrivateKey[T](Func`2 createCsp, Func`2 createCng)
   at System.Security.Cryptography.X509Certificates.CertificateExtensionsCommon.GetPrivateKey[T](X509Certificate2 certificate, Predicate`1 matchesConstraints)
   at PKISharp.WACS.Plugins.StorePlugins.CertificateStoreClient.ConvertCertificate(X509Certificate2 original, X509KeyStorageFlags flags, String password)
 [DBUG] Open store WebHosting

And a little bit later:
EROR] (COMException) Unable to install certificate: Eine angegebene Anmeldesitzung ist nicht vorhanden. Sie wurde gegebenenfalls bereits beendet. (0x80070520)
 [DBUG] Exception details: COMException {ErrorCode=-2147023584, TargetSite=Void Execute(), Message="Eine angegebene Anmeldesitzung ist nicht vorhanden. Sie wurde gegebenenfalls bereits beendet. (0x80070520)", Data=[], InnerException=null, HelpLink=null, Source="Microsoft.Web.Administration", HResult=-2147023584, StackTrace="   at Microsoft.Web.Administration.Interop.IAppHostMethodInstance.Execute()\r\n   at Microsoft.Web.Administration.ConfigurationMethodInstance.Execute()\r\n   at Microsoft.Web.Administration.Binding.AddSslCertificate(Byte[] certificateHash, String certificateStoreName)\r\n   at Microsoft.Web.Administration.BindingManager.BindingTransaction.Commit()\r\n   at Microsoft.Web.Administration.BindingManager.Save()\r\n   at Microsoft.Web.Administration.ServerManager.CommitChanges()\r\n   at PKISharp.WACS.Clients.IIS.IISClient.Commit()\r\n   at PKISharp.WACS.Clients.IIS.IISClient.UpdateHttpSite(IEnumerable`1 identifiers, BindingOptions bindingOptions, Byte[] oldCertificate, IEnumerable`1 allIdentifiers)\r\n   at PKISharp.WACS.Plugins.InstallationPlugins.IIS.PKISharp.WACS.Plugins.Interfaces.IInstallationPlugin.Install(Dictionary`2 storeInfo, ICertificateInfo newCertificate, ICertificateInfo oldCertificate)\r\n   at PKISharp.WACS.OrderProcessor.HandleInstall(OrderContext context, ICertificateInfo newCertificate, CertificateInfoCache previousCertificate, Dictionary`2 storeInfo)"}

Hi @bieba, thanks for testing. My current theory is that all this is triggered somehow (under some circumstances, unfortunately not on my own machine) by the password protection of the temporary certificates, so I've removed that in build 1690. Would you mind giving that a spin? https://ci.appveyor.com/project/WouterTinus/win-acme-s8t9q/builds/49846932/artifacts

Nope :-/
[VERB] Autofac: creating PluginBackend<IStorePlugin> scope with parent PluginBackend<ICsrPlugin>
 [VERB] W3SVC detected and running
 [VERB] FTPSVC detected and running
 [INFO] Store with CertificateStore...
 [INFO] Installing certificate in the certificate store
 [WARN] Error converting key to legacy CryptoAPI, using CNG instead.
 [VERB] System.Security.Cryptography.CryptographicException: Der Schlüsselsatz ist nicht vorhanden.
   at System.Security.Cryptography.CngKey.Open(String keyName, CngProvider provider, CngKeyOpenOptions openOptions)
   at System.Security.Cryptography.X509Certificates.CertificatePal.GetPrivateKey[T](Func`2 createCsp, Func`2 createCng)
   at System.Security.Cryptography.X509Certificates.CertificateExtensionsCommon.GetPrivateKey[T](X509Certificate2 certificate, Predicate`1 matchesConstraints)
   at PKISharp.WACS.Plugins.StorePlugins.CertificateStoreClient.ConvertCertificate(X509Certificate2 original, X509KeyStorageFlags flags, String password)
 [DBUG] Open store WebHosting

[INFO] Committing 1 https binding changes to IIS while updating site 9
 [EROR] (COMException) Unable to install certificate: Eine angegebene Anmeldesitzung ist nicht vorhanden. Sie wurde gegebenenfalls bereits beendet. (0x80070520)
 [DBUG] Exception details: COMException {ErrorCode=-2147023584, TargetSite=Void Execute(), Message="Eine angegebene Anmeldesitzung ist nicht vorhanden. Sie wurde gegebenenfalls bereits beendet. (0x80070520)", Data=[], InnerException=null, HelpLink=null, Source="Microsoft.Web.Administration", HResult=-2147023584, StackTrace="   at Microsoft.Web.Administration.Interop.IAppHostMethodInstance.Execute()\r\n   at Microsoft.Web.Administration.ConfigurationMethodInstance.Execute()\r\n   at Microsoft.Web.Administration.Binding.AddSslCertificate(Byte[] certificateHash, String certificateStoreName)\r\n   at Microsoft.Web.Administration.BindingManager.BindingTransaction.Commit()\r\n   at Microsoft.Web.Administration.BindingManager.Save()\r\n   at Microsoft.Web.Administration.ServerManager.CommitChanges()\r\n   at PKISharp.WACS.Clients.IIS.IISClient.Commit()\r\n   at PKISharp.WACS.Clients.IIS.IISClient.UpdateHttpSite(IEnumerable`1 identifiers, BindingOptions bindingOptions, Byte[] oldCertificate, IEnumerable`1 allIdentifiers)\r\n   at PKISharp.WACS.Plugins.InstallationPlugins.IIS.PKISharp.WACS.Plugins.Interfaces.IInstallationPlugin.Install(Dictionary`2 storeInfo, ICertificateInfo newCertificate, ICertificateInfo oldCertificate)\r\n   at PKISharp.WACS.OrderProcessor.HandleInstall(OrderContext context, ICertificateInfo newCertificate, CertificateInfoCache previousCertificate, Dictionary`2 storeInfo)"}
 [EROR] Renewal for [IIS] XXX, (any host) failed, will retry on next run
 [EROR] Install failed: Eine angegebene Anmeldesitzung ist nicht vorhanden. Sie wurde gegebenenfalls bereits beendet. (0x80070520)

Currently I'm thinking that the session is resetted, maybe you're throwing the last instance of the server manager away, because you catched a exception (and your Refresh()-method gets called) and the new instance doesn't know anything about the past?
I have been looking at the certificates, they have not the exportable property set, is that necessary? I didn't change anything and because of another issue of a older version, I thought migration to a recent version would be a good idea.
It is a german localized windows server 2016.

Bigger problem. The client destroys all bindings, because he can't assign the certificate. As I tried to choose it manually, I got the same error message. I had to rollback to the last working one.

Now the server has multiple corrupt certificates. I hope that this is not happen to many others.

@iztokba: which Windows version are you on?
@bieba: the new version might not be able to recover from a certificate that was already corrupted by a previous buggy build. If you're still willing to test could you try creating a cert for a brand new domain?

I got this same error. In my case it seems to be that this version is not properly accounting for Transfer-Encoding: chunked. In Fiddler the one of the certificates returned appears to be corrupted until I use the "click to decode" option. I suspect that win-acme is also failing to do this decoding step and jumps straight to decoding the PEM data which has a chunk header right in the middle of the base64 data.

The customer has a important appointment tomorrow, I am allowed to give it a new try in the late evening, not now.
As I was able to rollback to a working one, I assume that I can start with that one?
If its still not working I start over with a new domain for testing purposes.
I come back with some news late tomorrow evening.

i have winsrv2016 standard

@jshall: to be clear, which error, which build of win-acme and which version of Windows?

Windows version: 10.0.14393
win-acme version: <IP_ADDRESS>0
win-acme log excert:
2024-05-20 15:03:28.646 -04:00 [INF] Downloading certificate dev-sql02
2024-05-20 15:03:28.651 -04:00 [DBG] [HTTP] Send POST to "https://ca-agent.indwes.edu/acme/cert/1da387e7-5ec0-42f7-94ed-140a5f028e76"
2024-05-20 15:03:28.651 -04:00 [VRB] [HTTP] Request content: {"protected":"eyJhbGciOiJFUzI1NiIsInVybCI6Imh0dHBzOi8vY2EtYWdlbnQuaW5kd2VzLmVkdS9hY21lL2NlcnQvMWRhMzg3ZTctNWVjMC00MmY3LTk0ZWQtMTQwYTVmMDI4ZTc2Iiwibm9uY2UiOiI2SWpvZnBBZGRYb0QyRURkbWtWS1NCZ0tuQjAiLCJraWQiOiJodHRwczovL2NhLWFnZW50LmluZHdlcy5lZHUvYWNtZS9hY2N0LzZhOWM3M2UxLTg3MDAtNDYyNy05NTQ3LTQ2YWQzNDFhYjQ2YiJ9","payload":"","signature":"fTKf_nMPkLb2A6QciHO6q92hir_QZeLZRSlNdWXusFgIgEgd6MLIQfihXpkqo3kRazYTzd6PlbE9eF8sZ3YIkQ"}
2024-05-20 15:03:28.900 -04:00 [VRB] [HTTP] Request completed with status "OK"
2024-05-20 15:03:28.900 -04:00 [VRB] [HTTP] Empty response
2024-05-20 15:03:28.905 -04:00 [VRB] Parsing PEM data at range 0..1902
2024-05-20 15:03:28.918 -04:00 [VRB] Certificate CN=dev-sql02.iwunet.indwes.edu parsed
2024-05-20 15:03:28.927 -04:00 [VRB] Associating private key
2024-05-20 15:03:28.929 -04:00 [VRB] Parsing PEM data at range 1905..4403
2024-05-20 15:03:28.930 -04:00 [VRB] Certificate C=US,O=Indiana Wesleyan University,OU=IT,CN=Indiana Wesleyan University EZCA parsed
2024-05-20 15:03:28.937 -04:00 [VRB] Parsing PEM data at range 4406..6596
2024-05-20 15:03:28.937 -04:00 [VRB] Certificate C=US,O=Indiana Wesleyan University,OU=IT,CN=Indiana Wesleyan University Root CA parsed
2024-05-20 15:03:29.192 -04:00 [ERR] Error requesting certificate dev-sql02
System.Security.Cryptography.CryptographicException: Keyset does not exist
   at System.Security.Cryptography.X509Certificates.StorePal.Export(X509ContentType contentType, SafePasswordHandle password)
   at System.Security.Cryptography.X509Certificates.X509Certificate2Collection.Export(X509ContentType contentType)
   at PKISharp.WACS.DomainObjects.CertificateInfo..ctor(X509Certificate2Collection rawCollection)
   at PKISharp.WACS.DomainObjects.CertificateInfoBc.GenerateInner(Pkcs12Store store, X509KeyStorageFlags flags)
   at PKISharp.WACS.DomainObjects.CertificateInfoBc..ctor(Pkcs12Store store)
   at PKISharp.WACS.Services.CertificateService.CreateAlternative(Byte[] bytes, String friendlyName, AsymmetricKeyParameter pk)
   at PKISharp.WACS.Services.CertificateService.DownloadCertificate(AcmeOrderDetails order, String friendlyName, AsymmetricKeyParameter pk)
   at PKISharp.WACS.Services.CertificateService.RequestCertificate(ICsrPlugin csrPlugin, Order order)
   at PKISharp.WACS.OrderProcessor.GetFromServer(OrderContext context)
2024-05-20 15:03:29.194 -04:00 [VRB] Processing order 1/1: Main
2024-05-20 15:03:29.198 -04:00 [ERR] Create certificate failed
2024-05-20 15:03:29.199 -04:00 [VRB] Exiting with status code -1

raw Fiddler capture:
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: text/plain; charset=utf-8
Server: Microsoft-IIS/10.0
Request-Context: appId=cid-v1:8ee9a90b-1ca0-4224-aec2-61acb043f652
Replay-Nonce: 9fO0iM_DVr1WPegHlx5FAJSHL6U
Date: Mon, 20 May 2024 19:03:28 GMT

1000
-----BEGIN CERTIFICATE-----
MIIFQDCCAyigAwIBAgISSDYuE5PR5b3MzzlsZ1bBVGviMA0GCSqGSIb3DQEBCwUAMGsxCzAJBgNV
BAYTAlVTMSQwIgYDVQQKDBtJbmRpYW5hIFdlc2xleWFuIFVuaXZlcnNpdHkxCzAJBgNVBAsMAklU
MSkwJwYDVQQDDCBJbmRpYW5hIFdlc2xleWFuIFVuaXZlcnNpdHkgRVpDQTAeFw0yNDA1MjAxNzAz
MjhaFw0yNDA4MTcxOTAzMjhaMCYxJDAiBgNVBAMMG2Rldi1zcWwwMi5pd3VuZXQuaW5kd2VzLmVk
dTB2MBAGByqGSM49AgEGBSuBBAAiA2IABEnAcBZ4cTEkoB8BqStxg2pWQh1WRQpvaxFlVkbgnCNQ
zqpi+ZkwwYnJyU8riC3J5XZh2C3VEy1Fh5uwn8ThoUK7ROiMZ4AMKuqstWRicwxyVNFCMYgi5q41
TNU9oe320qOCAc8wggHLMB0GA1UdDgQWBBQfmIJqVJU57InO/sPzvJei8qFWWjAfBgNVHSMEGDAW
gBQgV5s7ke8XIQQhpJS2kSuZMT2w7jBeBggrBgEFBQcBAQRSMFAwTgYIKwYBBQUHMAKGQmh0dHA6
Ly9jZXJ0LmV6Y2EuaW8vY2VydHMvODEyYmIzMmEtZDExOC00ZDczLWJiZmMtMzlmODM2MTY5YTY3
LmNlcjBPBgNVHSUESDBGBggrBgEFBQcDAgYIKwYBBQUHAwEGCCsGAQUFBwMDBggrBgEFBQcDBAYI
KwYBBQUHAwUGCCsGAQUFBwMGBggrBgEFBQcDBzBlBgNVHREEXjBcghtkZXYtc3FsMDIuaXd1bmV0
LmluZHdlcy5lZHWCCWRldi1zcWwwMoIhd2FyZWhvdXNldGVzdGRiLml3dW5ldC5pbmR3ZXMuZWR1
gg93YXJlaG91c2V0ZXN0ZGIwDgYDVR0PAQH/BAQDAgWgMGEGA1UdHwRaMFgwVqBUoFKGUGh0dHA6
Ly9jcmwuZXpjYS5pby9jcmxzLzViMzk0ZmY1LTMwMTYtNGZjMS1iYTE0LWJlZjUxZWU4ZGZlZi9J
bmRpYW5hV2VzbGV5YW4uY3JsMA0GCSqGSIb3DQEBCwUAA4ICAQAdNwXz2u6OlJ0Cwji6jQlQ9H3h
w7jd4T8K9/6t28TtmyyNrcwhNma0bzk7UrhUeOEaIgm6QGRqQl4QI0XzF+EnaB/MIOYO2O1brsjk
IATY9yOzRmEYFflS4aWe0x+rIv9jLFdcrmvGKFR2ZqLu9iIhrDfy8CGVnShwu3vWtvdbHIdWXO3k
qhZF5rK/7MM5U7aCHzGLd6WPv6QkpHv/qpNfQ3dSdQGsx/ZTgJpyOlNQsiSrpk4+OJTAs2h49pZV
ZVAV9asecMaN0boRzGBH8ee4RCeZJlHyv6MVf0uUaZu4TRhnRX3jry6x2eCw0p7GaBeJbMVt/WvM
jQ0fxj/WfQSz5muqXmleGnVFA/N3SRB0IVBHIkGQfcC/CykNYzCr4fijzj8LTBBnikqZvg/LhXR+
n+ySbqKTtkTI/Rw15i1QdqMG/TdWRx8q+61UimBtj37VAuodpmwhiDQiJMxbCdSyl+3gkE2dqctX
O+ZecNy4oan0HXFsPe75TAHeYWVyNm/hftXobjIC9R74yfk3wH9zvLHrq9+0Ob+HU8AhZlpAch5j
OOvWZ5vwVx2SFPZgrcayrHqXE7qfblAmAIW0sokGdE+AKlTLzgd4hHb9qtdCmPah2q0IYo3YUuaN
KwcULZYBCoU/JGLwCP3SYXAD7T+oKieJpHAc4mvmsf1geLmRCQ==
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
MIIG8zCCBNugAwIBAgISN2ffX8oveG1xafWPYUqJlRb4MA0GCSqGSIb3DQEBCwUAMG4xCzAJBgNV
BAYTAlVTMSQwIgYDVQQKDBtJbmRpYW5hIFdlc2xleWFuIFVuaXZlcnNpdHkxCzAJBgNVBAsMAklU
MSwwKgYDVQQDDCNJbmRpYW5hIFdlc2xleWFuIFVuaXZlcnNpdHkgUm9vdCBDQTAeFw0yNDA0MTIx
NDQ2MDNaFw0yOTA0MTIxNDM1MzZaMGsxCzAJBgNVBAYTAlVTMSQwIgYDVQQKDBtJbmRpYW5hIFdl
c2xleWFuIFVuaXZlcnNpdHkxCzAJBgNVBAsMAklUMSkwJwYDVQQDDCBJbmRpYW5hIFdlc2xleWFu
IFVuaXZlcnNpdHkgRVpDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKpbaHS6dBcx
w82h961uCADaieFuI7OFdet1wItMMXoCLyDBMPj9OiZiTtRXtejZts4gPT/MEncnf0Eh9IH98h88
cUSq1nol9ZiEGVpfvUWBD3/IsItuzN67RPmpXKC2GKYKBj7ogw4fFM9Rr0wA6K2BwTroc+oY+cTy
Zl0VVW0baLg2Ih+EnnurJCTqcOwAV8y8g2G4AaQ3Z/T2iHn0fqDkcaaIjmYFHw+K7QkFEr+Q8Bks
C/g5DuMLN3HwA/09uh1LL0AimgHrxgPpYHu8F0jwhTEkjFv1r9qhRTHgC0Z+hZuTwIFfmmK8vynl
4/t3ASHHO75dwvvcOL6MHLLwcdGp6IWK41iEe2m0D/AjDbkEdS3IL0wxZTM1pf3JWwIug7gNk5MM
kf1N2F7KpNSE0pSJG+TzqL9ZneCqF4fonZ/vy/rchAFpWsA0ZalCgSAdE1y7COrp+Am2CTQfpy8V
JWMmq/I46PHSD930D6ylO81ZsI3nvDMzhVTmZ9RQ3iZYkIWdJGnqhjfsBLd756rQWWY4MWQ3JvTi
NFGfOw5o4BoN1g3BEnWMcV0ua3KluQPiK2SPxgoxkC1qj+YyuDODsw5DAE2Mjqnf7grMt99BvGI3
RXmQBK3UnSMhDi4yLLZG6o/7F5p1P86LVS0fsQDNz0bGkglyvJdDpN5B30s4RjpFAgMBAAGjggGM
MIIBiDAdBgNVHQ4EFgQUIFebO5HvFyEEIaSUtpErmTE9sO4wHwYDVR0jBBgwFoAUPDrcmgWJbXhk
oyhaF2ekHHwrLaowXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vY2VydC5lemNh
LmlvL2NlcnRzLzA3OTA1NjIxLTUwMTQtNDI3MS04Y2E4LTVhNmYzMzZjZDk5YS5jZXIwEQYDVR0g
BAowCDAGBgRVHSAAMA4GA1UdDwEB/wQEAwIBpjBPBgNVHSUESDBGBggrBgEFBQcDAgYIKwYBBQUH
AwEGCCsGAQUFBwMDBggrBgEFBQcDBAYIKwYBBQUHAwUGCCsGAQUFBwMGBggrBgEFBQcDBzBhBgNV
HR8EWjBYMFagVKBShlBodHRwOi8vY3JsLmV6Y2EuaW8vY3Jscy8zMzYzOWUzNy0xYTg2LTRlNDYt
OWQ3NC1jYmExYjk3NTRmM2EvSW5kaWFuYVdlc2xleWFuLmNybDAPBgNVHRMBAf8EBTADAQH/MA0G
CSqGSIb3DQEBCwUAA4ICAQAMZdTrmIEd2Ii6BM0nVsz3Apu72sGBXaTYl6G0sq+m63+Sih+va7Ky
ak26ylfBNZzA//wX4oE8zjxC4OnERr1p1pOAq8STYaql3/9EsZO6d4fwjTOmtGVfsjrO1ph/KFbH
CHyf/6Y0Hlvu3n70VkROGY7MUr8AtnCNTpk3jJ7BvqTtSPCItgddmUAmbsJGT8pdQNuxlfW4y3Ic
ZUNGMEFxJNbFan8lIbZDEAc9Eo/nL6YYpssoTgVJhODmxiumuZaVCXLJoODe/oc/UPWWmHwgUA/1
N/qn4LsmUfKq4p5157UDYsBzxiatOSgYeV+4wEn2GrfNNhgCezdmPsYKIeSvM7zng7CmVMYnGwx0
hQux02puIdyh2tiy1TMfjim6RB36l9S4PIicS362tnkOKhkZQvVl3ukN
9c6
vEwAwxjR46UTNmhcuwS9
wfz3sFjzMzOAKakHR/NOOIREEmmWSOYuCb/UbroEN3kBU+1UNtu/mV6Ztx3tvurQEFqK1Ovz20By
9TXOo+ZgvUrj3IbdC+ZbYtP0tndDj803e0IPrvyjMpNkZyb7qTwMpOtpkteSB8JFd81srpJMp9bW
tMiw0wa8E/0Kg/iXF3G2pxlZjrdangRqMJNowEWfSZNpQJPNuo3nXY46KDAY3Fvlc4fGglbmCMHr
ySvTEJU5PQCZj+ngoP+M7A==
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
MIIGEzCCA/ugAwIBAgITAK/MetKszG8Wg1GgO48fqSHCuDANBgkqhkiG9w0BAQsFADBuMQswCQYD
VQQGEwJVUzEkMCIGA1UECgwbSW5kaWFuYSBXZXNsZXlhbiBVbml2ZXJzaXR5MQswCQYDVQQLDAJJ
VDEsMCoGA1UEAwwjSW5kaWFuYSBXZXNsZXlhbiBVbml2ZXJzaXR5IFJvb3QgQ0EwHhcNMjQwNDEy
MDAwMDAwWhcNMzQwNDEyMDAwMDAwWjBuMQswCQYDVQQGEwJVUzEkMCIGA1UECgwbSW5kaWFuYSBX
ZXNsZXlhbiBVbml2ZXJzaXR5MQswCQYDVQQLDAJJVDEsMCoGA1UEAwwjSW5kaWFuYSBXZXNsZXlh
biBVbml2ZXJzaXR5IFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2xvCL
l2J1hgu0eRpUzSNVRO+a+R5Ckl744D17fDz/XXg1yybA5BRZcfWNrsRu+4fjIC6R6bTDLKdrbp4V
JMyu8cssoymEAvy2iVZ8yt6s05nX5FY6MCdVg2OajYqpgJ9M7KA5UxPWwya6HfWz1UEsvTZ/nk1A
EMVisbeGipZxpjx5qpY356hJ+S8+0iGxkTD1Mb0+ZOlK6ats0iuTSoZ6T93u75OYpFdmZs111ARx
znqv+Xq3tMVAxnGx4wgOOU/PSVNoGl88DgLckQrW3JqaItA4hAFzb3xslIELqaSKua+mfPAo00H8
rKDSE59NJymVqq6XzNE6hUo+SsvFuQZ+XXQTO7IdtxkCTyQu53PNslwrL0q/TWQDnrUHY/Qbo2gH
vFJAQD+uHn2uaC5DszaP8FZUx8EK8S0g2OUejiQJfXRurodCsLBA+0H5xlABGRoc1TotgcNUTvHK
k6BQuBd8ps4M5RlPbAIH1VbZ5YOZHKscTyh8uaLR+OczGLfAg4i27XETNKoaNRqhKtpmPaA1E0pU
yVborO1wT7ucJ1Vl6HhVo/n6Q8R42Q3qUzmp9iKE03cBzLesYaizYskfuDr1gnl5TnlNV4lpaf83
Fxw1qQWjafMTbxlBttVNLrFgOBEF69pzdkXUyHmqdX0sSZl3N81NzEM8R5ORD6dhgvFdMwIDAQAB
o4GpMIGmMB0GA1UdDgQWBBQ8OtyaBYlteGSjKFoXZ6QcfCstqjAOBgNVHQ8BAf8EBAMCAaYwZAYD
VR0lBF0wWwYIKwYBBQUHAwIGCCsGAQUFBwMBBggrBgEFBQcDAwYIKwYBBQUHAwQGCCsGAQUFBwMF
BggrBgEFBQcDBgYIKwYBBQUHAwcGCisGAQQBgjcUAgIGBysGAQUCAwUwDwYDVR0TAQH/BAUwAwEB
/zANBgkqhkiG9w0BAQsFAAOCAgEAoWtvIFLdR2PmL74HDXm7frCa+P61+3zH0JkR7vI+xW37B0Ai
Ydh0whZPYXKU/yWfQ2Y5ft9t+LiY+BR0zZxa8dfsYARklUeiYFq7qZMz5N9HVBnDDzaFa84GlPxe
rkx9kA1Fh9l4De5ua2OPZ8snot0EK8/9HfFJIFuQNxmPnZAqK/V0xRLQ4D+3BSQ51phvf96KSQhI
XJfRvQFk/9M7yQYUJH2mAHImA6BTrKw9gKxqSZunYxiJSOS/5AsDA3kMrFaN7m9UIzeawOvlq6dQ
6IIAVyZCs6k4KWiV+V+oOTfTni2fwsZBWF4va6LP5S5iCcVxuxzp3Zi0VD8AKfEih23Xp5dlb5u3
eTHts6F6qhg5MJg34zwYX6zStUnv990G+VAnB0EhAlAc4s5Sl1klQAC9sGYOpY3MzFd10XTJ66Qd
h0aSK/i8Mw9VQsODSTcDRwUCC2z+zmjAbhRHZLD36XplqLbGkvW0EEIFPBIBgAcg3jtBxYCthQY0
RthYkjfbSwaA+xy6LVDtTGTA9VGN6vPk77q7AF4liRaTeqz+H0FjtHPWnVw+0ncVKE8DjHLX2a/B
iKNBrvYihOMlV+v7DcEgaqVA7bjdRbM4TSelgRndwQoJ0EJwjcy+HMiThKaqkFrdGBXnxkr9E3at
btUK9CQkVXXUE5FDNjWBh/WxofE=
-----END CERTIFICATE-----

0

So I managed to get my hands on a Windows 2016 machine and was able to reproduce and fix the issue. Build 1700 is now available from https://ci.appveyor.com/project/WouterTinus/win-acme-s8t9q/builds/49859984/artifacts and should work for everyone. It will be released as version 2.9.1 in a couple of days if I don't hear reports to the contrary.

Thanks! I can confirm that build 1700 worked for me as well.

I missed it at first, but another bug popped up. The log does not directly indicate an error, but the CertificateStore plugin did not actually add the new certificate to the Windows certificate store.
<IP_ADDRESS>5:
2024-05-21 18:42:50.679 -04:00 [VRB] Autofac: creating PluginBackend<IStorePlugin> scope with parent PluginBackend<ICsrPlugin>
2024-05-21 18:42:50.685 -04:00 [VRB] No W3SVC detected
2024-05-21 18:42:50.685 -04:00 [VRB] No FTPSVC detected
2024-05-21 18:42:50.686 -04:00 [DBG] Certificate store name: My
2024-05-21 18:42:50.687 -04:00 [INF] Store with CertificateStore...
2024-05-21 18:42:50.690 -04:00 [INF] Installing certificate in the certificate store
2024-05-21 18:42:50.691 -04:00 [DBG] Opened certificate store My
2024-05-21 18:42:50.691 -04:00 [INF] Adding certificate dev-sql02 @ 2024-05-21 to store My
2024-05-21 18:42:50.691 -04:00 [VRB] CN=dev-sql02.iwunet.indwes.edu - CN=Indiana Wesleyan University EZCA, OU=IT, O=Indiana Wesleyan University, C=US (D04A1AA51E861B56C0F1CF70D215EE539BAFB540)
2024-05-21 18:42:50.692 -04:00 [DBG] Storing certificate with flags "MachineKeySet, PersistKeySet"
2024-05-21 18:42:50.775 -04:00 [DBG] Closing certificate store
2024-05-21 18:42:50.786 -04:00 [VRB] CN=Indiana Wesleyan University EZCA, OU=IT, O=Indiana Wesleyan University, C=US - CN=Indiana Wesleyan University Root CA, OU=IT, O=Indiana Wesleyan University, C=US (405E0CEDB847985FE5C29F33CE600DF2468FEBBE) already exists in CA
2024-05-21 18:42:50.786 -04:00 [VRB] CN=Indiana Wesleyan University Root CA, OU=IT, O=Indiana Wesleyan University, C=US - CN=Indiana Wesleyan University Root CA, OU=IT, O=Indiana Wesleyan University, C=US (D5809A52EBE161D463673A2F2D585B2D68E5405E) already exists in CA
2024-05-21 18:42:50.786 -04:00 [DBG] Closing store CA

<IP_ADDRESS>0:
2024-05-21 18:38:11.679 -04:00 [VRB] Autofac: creating PluginBackend<IStorePlugin> scope with parent PluginBackend<ICsrPlugin>
2024-05-21 18:38:11.684 -04:00 [VRB] No W3SVC detected
2024-05-21 18:38:11.684 -04:00 [VRB] No FTPSVC detected
2024-05-21 18:38:11.686 -04:00 [INF] Store with CertificateStore...
2024-05-21 18:38:11.687 -04:00 [INF] Installing certificate in the certificate store
2024-05-21 18:38:11.880 -04:00 [INF] Adding certificate  in store CA
2024-05-21 18:38:11.880 -04:00 [VRB] CN=Indiana Wesleyan University EZCA, OU=IT, O=Indiana Wesleyan University, C=US/CN=Indiana Wesleyan University Root CA, OU=IT, O=Indiana Wesleyan University, C=US (405E0CEDB847985FE5C29F33CE600DF2468FEBBE)
2024-05-21 18:38:11.881 -04:00 [INF] Adding certificate  in store CA
2024-05-21 18:38:11.881 -04:00 [VRB] CN=Indiana Wesleyan University Root CA, OU=IT, O=Indiana Wesleyan University, C=US/CN=Indiana Wesleyan University Root CA, OU=IT, O=Indiana Wesleyan University, C=US (D5809A52EBE161D463673A2F2D585B2D68E5405E)

Looks like certificates with EC keys were slipping through the cracks in the new control flow, there's a bugfix here:
https://ci.appveyor.com/project/WouterTinus/win-acme-s8t9q/builds/49861780/artifacts

.1701 tested. Works like a charm.

Build 1701 has been release as version <IP_ADDRESS>. Hopefully working for everyone now 👍


DSMR-Reader in menu sidebar not available for users, only for administrators

When I have installed the app and enabled the option to make the option visible in the sidebar, it is not visible to standard users within Home Assistant.
This requires me to make users administrators, which I'd rather not have.

So apparently i can changes this but that raises the question the other way around. So maybe some administrators don't want to have the app available to end-users. Let me investigate, maybe it's configurable by the ha admin after changing this 👍 .

Yes, please, think about this for a while to come with a good solution, where it would be a choice. I definitely dont want my user to access things, they don't understand '. ;-)

So i checked this and after changing this setting, the user needs to hide it by going to the profile and choosing the edit option "Change the order and hide items from the sidebar". Security wise there is no option to hide is for all non-admins.

If I understand you correctly, then I need to make everyone an administrator and then remove the options from the sidebar that they are not allowed to use. That would mean logging into all their devices for that to happen.
In addition, for their 'settings' and 'developer help' remains available what I do not want.
Then I think I have a better option, that the option is available for adminstrators and standard users.
For those who don't want that for their standard users, they can hide the option, as you describe.
Is that an option?

For those who don't want that for their standard users, they can hide the option, as you describe.

No, they can't. For exactly the same reasons. This is a HA shortcoming in global, there is just bad user policy.
Anytime, a user uses a new device to log in, he will be able to see things, he is not supposed to see, if this suggested change will be made.
Definitely a no go with children, older people with pure technical education, bed & breakfast accommodations, rented rooms and so on.


Limit language for Endpoint Request Snippet

Problem description
Under certain situations, you don't really need users to see all available snippets.
It would be very helpful to be able to define which language(s) you want to display in the Endpoint Request Snippet component
Why would it be useful?
If you're taking a customer through an example built for using the API in Go (for example) and want to show the pre-generated code but in a nice component, there is currently no way to make it so that this sample is pulled directly from your code samples and only one is displayed.
Moreover, when using these blocks as a part of more custom built html, it's sometimes easier to control if you only have a single sample to work with.
Describe the solution (optional)
Add a lang=[] option that would use the same values as the sdk parameter x-fern-samples. This way you could easily add lang=[curl, python] to the EndpointRequestSnippet component and only show these.
Additional context
I actually recently ran into an issue where I wanted to use this component and ended up building quite a lot of custom html.  The issue in the end was that when you changed samples the size of the element changed and then caused it to run over other components. It was perfect for curl and I would have been fine just leaving it with a single sample.

@aweaver89 it sounds like a format such as what's proposed below would meet your need.
<EndpointRequestSnippet
  endpoint="POST /snippets"
  languages={["python", "typescript", "go", "curl"]}
/>

Up to share the custom HTML you wrote in case others can benefit from the same workaround until this is supported?

@dannysheridan - yup this would be perfect!
For the HTML this actually doesn't limit the language but rather shows why being able to set the language is necessary :sweat_smile:
Still more than willing to share any custom html where I can if it's useful ;)


Theme localisation

I have prepared a translation of this template into English and Polish. @minimaluminium , @JohnONolan Please take a look into it.

Hey @leszekkrol, really appreciate it!
However, we're not ready to include translations by default in the theme at the moment. You're very welcome to translate the theme or release your own translated themes!

Hey @minimaluminium, thanks for the information. I hope it will be useful in the near future :)


Paragraph pages link updates

Udated links fo paragraph pages, page 1c to Featured Content

LGTM (Looks good to me). Thanks @rich3146 !


Incorrent version matching for programs

Versions are being matched and reported incorrectly.
$ # wsl/ubuntu/linux
$ gcc --version
gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ xmake --version
xmake v2.2.9+202002012341, A cross-platform build utility based on Lua
Copyright (C) 2015-2020 Ruki Wang, tboox.org, xmake.io
Copyright (C) 2005-2015 Mike Pall, luajit.org
                         _
    __  ___ __  __  __ _| | ______
    \ \/ / |  \/  |/ _  | |/ / __ \
     >  <  | \__/ | /_| |   <  ___/
    /_/\_\_|_|  |_|\__ \|_|\_\____|
                         by ruki, tboox.org

    👉  Manual: https://xmake.io/#/getting_started
    🙏  Donate: https://xmake.io/#/sponsor

$ xmake lua lib.detect.find_programver gcc
"7.4.0-1ubuntu1~18.04.1)"

C:\> @REM :: windows
C:\> gcc --version
gcc (i686-posix-dwarf-rev0, Built by MinGW-W64 project) 8.1.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

C:\> xmake v2.2.9+201912201654, A cross-platform build utility based on Lua
Copyright (C) 2015-2020 Ruki Wang, tboox.org, xmake.io
Copyright (C) 2005-2015 Mike Pall, luajit.org
                         _
    __  ___ __  __  __ _| | ______
    \ \/ / |  \/  |/ _  | |/ / __ \
     >  <  | \__/ | /_| |   <  ___/
    /_/\_\_|_|  |_|\__ \|_|\_\____|
                         by ruki, tboox.org

    👉  Manual: https://xmake.io/#/getting_started
    🙏  Donate: https://xmake.io/#/sponsor

C:\> xmake lua lib.detect.find_programver gcc
"686-posix-dwarf-rev0,"

Within the code, it looks like the regular expression (%d+%.?%d*%.?%d*.-)%s is used by default. This only requires a single leading digit followed by anything that's not a space. An equivalent regex would be %d%S*. I don't think that's a selective enough default requirement. I would think that requiring at least two digit sequences separated by a "." would be a better minimum default criteria.
I'm using the regex %d+[.]%d+[-_.~%w]* which translates to... at least two digit sequences separated by a ".", followed by any combination of alphanumeric and "-", "_", ".", "~" characters.
Using that the above versions translate as:

"gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0" => "7.4.0-1ubuntu1~18.04.1"
"gcc (i686-posix-dwarf-rev0, Built by MinGW-W64 project) 8.1.0" => "8.1.0"

I think that's a better match.

"gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0" => "7.4.0-1ubuntu1~18.04.1"

We can only match 7.4.0-1ubuntu1 as a valid semantic version for core.base.semver module.
I have improve it, you can see https://github.com/xmake-io/xmake/commit/c1262215a240eefc46a97b88ec3086e0c55947e3
Although the current default matching rules are not perfect, they have basically met the requirements.
You can also continue to improve the following code.
https://github.com/xmake-io/xmake/blob/c1262215a240eefc46a97b88ec3086e0c55947e3/xmake/core/base/semver.lua#L164-L177
https://github.com/xmake-io/xmake/blob/c1262215a240eefc46a97b88ec3086e0c55947e3/tests/modules/semver/test.lua#L85-L91

Thanks for the quick response!
I'm quite happy with your modifications.
I hadn't reviewed the semver requirements, but, after reviewing them now, I think you've captured them correctly.
With your changes, I consider the problem solved.
Thanks again.
👍


CI Update

This PR updates the CI configuration:

Runs the build jobs on specific containers, not the Github-provided runners which are not "clean" OS images

Edit: apparently this is only supported for Linux jobs

Merges the package build jobs with the regular CI jobs to eliminate code duplication

@Levi-Armstrong I think this is finally ready for review

It looks like it only does a release build when a github release is triggered and all other CI builds leverage debug so clang-tidy and asserts are not affected during PR and Merges. Is that correct?

It looks like it only does a release build when a github release is triggered and all other CI builds leverage debug so clang-tidy and asserts are not affected during PR and Merges. Is that correct?

Yes. It will only build in release for a release jobs; all other jobs are debug builds


Show swap error codes

Resolves #194
Also makes a start on https://github.com/lukechilds/hyperdex/issues/194
This PR adds a new error property to the swap object. By default it is false so we can just do simple truthy checks on it.
If there is an error it will look like this:
swap.error = {
	code: Number,
	message: String || undefined,
}

Currently messages are always undefined but this will change as we get more documentation from James
I'm just displaying the code in the swap details modal but we should display a helpful message if available.
I've just added it to the modal in a basic way, feel free to change it  or style it differently.

I've addresses your feedback. I also removed the code property so we only have message, is that what you meant?
Now I'm thinking it would be good to have the code available too.

Now I'm thinking it would be good to have the code directly available too.

I think the code should still be there as a property.

@sindresorhus fixed


Homebridge don't detect any desk high changes

Is your feature request related to a problem? Please describe:
If i change the desk via the normal remote control on the desk. Homebridge don't detect those changes until i restart homebridge.
I think the problem is how your plugin works. In one direction -> from plugin to linak controller. Linak controller don't send any change notification to your plugin.
 Thanks for opening this issue.
You're right in that the Linak-controller does not update the plugin. That is because it is "poll only". There is no way to register the plugin as a "receiver" for the updates.
It would be possible to actually monitor the desk by keeping a stable connection but in my tests it was very fragile and ended up in deadlocks everywhere.
When you move the desk I implemented a retry mechanism if the command fails (which can happen because.. bluetooth.).
For polling I intentionally did not implement retries so that the connection is not blocked in case we want to move the desk.
There can only be one active connection to the desk unfortunately.
The percentage in the home app is updated on 2 occasions:

a successful poll
a movement finished

It is expected that the commands (poll/move) sometimes fail.
When the poll command fails, it should not crash the plugin.
When setting the pollingRate, please keep in mind that every poll needs time to connect to the desk, get the value, disconnect and calculate.
PollingRates under 20 are usually prone to errors and deadlocks. Maybe you could try increasing the poll rate to something like 30?
I'm running this plugin on my homebridge and it had some hiccups yesterday. But it just kept on polling afterwards without the need for a restart. Could you try to "give it some time"? :D
Again: When the poll fails it should just try again later. But as polling is not a "critical function", it will not retry as that could block movement from working correctly.
Please keep me updated if increasing the polling rate fixes things for you.

The polling seems to stop at one point or another. It is however not related to the error - at least not directly.
My instance stopped polling without a poll-error. It does everything else how it's supposed to but the poll itself seems not to run. I'll investigate this.

Thanks! glad i'm found a bug :) i already set the interval at 60 seconds.. so yes in my case i notice if the poll error occurs the polling mechanism stop working. thanks

Hey @elministerr! This should be fixed in v1.1.2.
 I think you can close this. Thank for your time!


Error when upload an extension

error message: An error occurred, but unfortunately I don't know how to say this nicely: EACCES, mkdir '/home/aboutweb/tmp/bracketsPackage_1151020-12803-zpz3p5'
I think I have the valid package.json and main.js. Any ideas?

Duplicate of #11932, there seems to be an fix coming

closing duplicate


[Bug] Fix sending form on 'Enter' event on trying to add item

Need to fix that if you use keyboard the Enter Event when using inside forms does not send the form to server if focus is on the search list

overlay needs to ne added outside form. Class selectors need to be updated and so if more as one bs-nice-select is on page, on hiding, it needs to be removed again


Add get-mute command

This adds a simple get-mute command.
It prints true or false to stdout.

Codecov Report
Attention: Patch coverage is 0% with 9 lines in your changes missing coverage. Please review.

Project coverage is 0.0%. Comparing base (131f707) to head (c8155e7).

Files with missing lines
Patch %
Lines

src/main.rs
0.0%
9 Missing :warning:

Additional details and impacted files

Files with missing lines
Coverage Δ

src/main.rs
0.0% <0.0%> (ø)

Released in 0.1.6 :tada:


Fix CI package installation

Annoyingly, the CI has been failing because it's been trying to install a package from the GitHub registry. Which you need to authenticate with in order to download from. (But only when you are in a GitHub Actions workflow?) This is in spite of the fact that the exact same versions of the package are available on both the NPM registry and the GitHub registry.
After some trial and error, I learned that even if you tell NPM to prefer the NPM registry, it will still pull from the GitHub repository. (At least if you are in GitHub Actions. I was unable to reproduce this issue outside of a live GitHub Actions workflow.)

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Update schemas for v1.0.0

Assuming we will merge #290 soon, this will require some form of adjustment of the schemas, since it allows serving of the API also under the unversioned base URL.
I see that the present schemas specify the paths below the unversioned base URL in the schemas, e.g. /v1/info. The problem is, as we release new versions, all versioned endpoints will all use their own schemas, and it will be up to the implementation to mix-and-match API versions as one wants.
Hence, would it not make sense to use relative URLs, relative to where an API of version X is served? I.e., so just replace /v1/info -> /info in the present schema files?
Then an implementation that serves v1.1 on the unversioned URL, but v1.2 under /v1/ and v1.0 under /v1.0/ just needs to reference the correct schemas everywhere and all will be good.

@CasperWA @ml-evs Two questions to you:

Would it break anything if we just remove all versioned URL path segments from the schemas?, e.g., /v1/info -> /info, /v1/info/{entry} -> /info/{entry}? This matches the picture given by the meta filed query->representation where we have said to use the unversioned path.
Do you agree that it makes sense to setup https://schemas.optimade.org/openapi/v1.0/schema.json (or similar?) as a permanent URL for our schemas? Because in that case we need to petition @gmrigna to trouble his system administrators once more. Should we perhaps even try to serve it out of the main OPTIMADE repo?... (It is possible if we setup a /docs directory to serve with github pages...)

* Would it break anything if we just remove all versioned URL path segments from the schemas?, e.g., `/v1/info` -> `/info`, `/v1/info/{entry}` -> `/info/{entry}`? This matches the picture given by the `meta` filed `query`->`representation` where we have said to use the _unversioned_ path.

Shouldn't do, this is only added in our server code, so generating the schemas without the versions is pretty trivial. I could even add these unversioned schemas directly to #290?

* Do you agree that it makes sense to setup `https://schemas.optimade.org/openapi/v1.0/schema.json` (or similar?) as a permanent URL for our schemas? Because in that case we need to petition @gmrigna to trouble his system administrators once more. Should we perhaps even try to serve it out of the main OPTIMADE repo?... (It is possible if we setup a `/docs` directory to serve with github pages...)

For post-1.0 versions, I would agree, yes. We have discussed how we can accommodate versioning of schemas and models from within optimade-python-tools, but at the moment the solution is just to rollback to previous versions of the package... I would support hosting different schema versions from this repo, or a separate one.

Shouldn't do, this is only added in our server code, so generating the schemas without the versions is pretty trivial. I could even add these unversioned schemas directly to #290?

Add or change? I.e., do you suggest having both versioned and unversioned schemas? My suggestion is that we only provide the schemas for unversioned paths in the main repo and declare that you are supposed to validate against the same path that you put in meta->query->representation. Would this mess with any automatic OpenAPI validation tools? Or can you choose yourself what counts as the "root" of the path when you ask for a validation?

Do you agree that it makes sense to setup https://schemas.optimade.org/openapi/v1.0/schema.json (or similar?) as a permanent URL for our schemas?
For post-1.0 versions, I would agree, yes. We have discussed how we can accommodate versioning of schemas and models from within optimade-python-tools, but at the moment the solution is just to rollback to previous versions of the package... I would support hosting different schema versions from this repo, or a separate one.

Why only post-1.0? Why not set up that permanent path now and put our v1.0 schema there when we release v1.0.0?

Add or change? I.e., do you suggest having both versioned and unversioned schemas? My suggestion is that we only provide the schemas for unversioned paths in the main repo and declare that you are supposed to validate against the same path that you put in meta->query->representation. Would this mess with any automatic OpenAPI validation tools? Or can you choose yourself what counts as the "root" of the path when you ask for a validation?

Change! The validator doesn't use the openapi schema directly, instead it uses the underlying python models that were used to create the schema, so it will happily validate any URL. The only change we need to make is extra validation for /versions on the unversioned URL.

Why only post-1.0? Why not set up that permanent path now and put our v1.0 schema there when we release v1.0.0?

Also agree, by post-1.0 I meant 1.0 and beyond (as it would be tricky for us to generate e.g. 0.9, 0.10 schemas of the same quality as our current schema).

@gmrigna So, would it be OK to trouble your sysadmins with one final DNS setting? (Perhaps we should offer to buy them a cup of coffee or something? :-) ) At least I think this one should be the last one from me for a while.
schemas.optimade.org. CNAME materials-consortia.github.io

So that we can setup permanent URLs for the OPTIMADE schemas at: https://github.com/Materials-Consortia/schemas

host schemas.optimade.org
schemas.optimade.org is an alias for materials-consortia.github.io.
materials-consortia.github.io has address <IP_ADDRESS>
materials-consortia.github.io has address <IP_ADDRESS>
materials-consortia.github.io has address <IP_ADDRESS>
Is this OK?

@gmrigna Perfect! The non-ssl links are already working:
http://schemas.optimade.org/openapi/v1.0/optimade.json
and here github should have no problem obtaining an SSL certificate for us.


Add blog page

This is more or less a suggestion but it would be nice to have something like a blog of our own.
As we already have our own web page we might include it (if everyone is okay with it).
This is still a draft as the content of this page isn't completed yet.
Also: This is not the ideal way to do content management but we will be able to move to a real blog (or at least a json based solution) after we have launched.
Closes #61

Sweet! @stefwalter @leswilliams44 thank you so much for your feedback.
I've adapted text to the best of my ability ;)
I can't take the praise for this text though as this was 99% @EleanaP s work with some help of the rest of the team! Let's get this message out there.


Add labels to container and host

Add key=value labels on host and container.  Containers cannot be changed once created, but hosts can be edited.

Tested with v0.23.0-rc1:
UI provides option to  add labels  when adding and editing hosts.
UI provides option to  add labels  when deploying service and containers.


Option to add contact information to a Quest Claim

Is your feature request related to a problem? Please describe.
Nope!
Describe the solution you'd like
When scheduling a Claim for a Quest, it'd help if you could add contact info (email, Discord, Telegram, etc.) so the Quest creator could get in touch with the Claimer about the Claim and get notified if the Claim is approved.
Describe alternatives you've considered
A Claim could also create a forum post in the 1Hive forum, or a thread in Discord where the Creator and Claimer could talk about the submission together.

Yeah, it could definitely help for communication. Maybe we can carry over the contact info with the evidence. However, I think it may be good to have it optional so we keep the possibility of total privacy.
About the discord thread/forum post, it could be really cool for communication but the problem here is that we enforce a user to use the 1hive community tool (join the discord or create a forum account).

For MVP, I included it in the tooltip of Evidence
But I keep this feature request in the backlog to maybe have a separate field in the form to submit contact information


Empty generated file regardless of target

I get empty files regardless of the target. The input file was the results of introspecting the schema using both the introspection command provided by this tool and the one provided by the GraphQL server (they are the same anyway). The server implementation is graphene (in particular graphene-django).
An example generated file with TS as the target:
//  This file was automatically generated and should not be edited.
/* tslint:disable */
/* tslint:enable */

Here is a pastebin of the schema, the types and directives are non empty arrays. The former is quite large, if it's important I can fill some of it. https://pastebin.com/FuY3DNMd

Have you also written queries and put these in .graphql files? apollo-codegen generates query-specific types, so without queries there is nothing to generate :)

Okay, that is something I was missing. I thought it would generate types for the whole graph. Thanks a lot.

This was also unclear to me. It would be super useful if it actually did generate interfaces for all the types.


Add option to choose the controller in case there are more than one

I created an ESP32 implementation that adds a new BT controller on the host by connecting over IP to an ESP32. Basically it is a generic BT proxy that offer full stack.
Without checking sources for the reason, I observed that tesla-local-control always uses the first controller even though bluetoothctl always sets the last added controller as default. See below:
sudo hciconfig
hci1:	Type: Primary
BD Address: 08:3A:F2:13:35:C2  ACL MTU: 1021:9  SCO MTU: 255:4
UP RUNNING
RX bytes:7809687 acl:0 sco:0 events:369222 errors:0
TX bytes:5040449 acl:26036 sco:0 commands:292446 errors:0
hci0:	Type: Primary
BD Address: D8:3A:DD:C2:67:D7  ACL MTU: 1021:8  SCO MTU: 64:1
UP RUNNING
RX bytes:7213 acl:0 sco:0 events:592 errors:0
TX bytes:69142 acl:0 sco:0 commands:561 errors:0
id@raspberrypi5:~ $ bluetoothctl
[bluetooth]# list
Controller 08:3A:F2:13:35:C2 raspberrypi5 #2 [default]
Controller D8:3A:DD:C2:67:D7 raspberrypi5
[bluetooth]#
It is showing also in HA and can be used by other APPs.

I consider tesla-local-control a good complement for my ESP proxy as it can be updated easily when vehicle-command package is updated by Tesla instead of a GATT implementation like https://github.com/yoziru/esphome-tesla-ble
I will release my implementation as soon as I clean it.
Thanks

This is very useful, thanks for sharing. It will be interesting to see your final implementation.
Did you find a way to get vehicle-command to grab the required controller (hc0, hc1 etc) repeatably?

I did not spend much time on this but for sure there was no cmd line param for that. So for my tests I just modified the source to use hci1:
<EMAIL_ADDRESS>// NewHCI returns a hci device.
func NewHCI(o ...ble.Option) (*HCI, error) {
h := &HCI{
id: 1,
...
Maybe Tesla will accept a request to add such an option.

Very useful. I'm thinking we could provide a modification like this in the build with environment setting for the user to specify the adapter.
Which file did you change in the repo https://github.com/teslamotors/vehicle-command ?
Thanks

The change is in go-ble package that is downloaded by go commands as prerequisite before building vehicle-command.
Probably the go-ble package has an API call to set the controller and it needs to be used inside vehicle command.

OK got it.  https://github.com/go-ble/ble/blob/master/linux/hci/hci.go
I will try it out to see if I can force use of hc0
Thanks

I'm on supervisor, and I've disabled on my nuc the internal Bluetooth with:
"....
First find the idVendor and idProduct for the USB device you wish to disable by running lsusb and locating the right line. Eg, on my system this is the matching line for the adapter I wanted to disable:
Bus 004 Device 006: ID 0b05:179c ASUSTek Computer, Inc. Bluetooth Adapter
So then put the following into /etc/udev/rules.d/81-bluetooth-hci.rules, note the 0b05 and 179c values from above:
SUBSYSTEM=="usb", ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="179c", ATTR{authorized}="0"
...."
Chmod +x, then reboot

@dettofatto I assume from your last post on https://github.com/tesla-local-control/tesla-local-control-addon/issues/116 that disabling the built in bluetooth didn't work?
I have three suggestions:
1 - can't you use the NUC built in bluetooth instead of the external USB? You may have already tried it
2 - You could leave the built in bluetooth enabled, but force use of hc1 by hacking the go-ble code as per @BogdanDIA comments above
3 - This is getting rather messy and I'm sure consuming a lot of your time. You might try a different device e.g a Raspberry Pi (with built in bluetooth) running the Docker version of the project


View or edit?

The default message states:

This page is currently being viewed by Test User.

I think it would be more clear for the user to tell, that this page is currently edited and not just viewed?! The main purpose of the edit page is to edit a resource not to view it. What do you think about it?

This page is currently being edited by Test User.

Best,
Arne

Hey,
We can't directly change the work "viewed" to "edited" because it also lists people who are also viewing the page but don't have control. But it does say underneath the person who has "control", which would be the current editor.
The package supports translations, so you could in theory publish these translations and edit them if you had a specific way of phrasing things.

Oh sure. That makes sense. I didn't take into account, that there could be more than 2 users on the same site. dooooh.


chore: use dedicated vars for letsencrypt

https://artsyproduct.atlassian.net/browse/PLATFORM-4155
This makes a couple of adjustments to the letsencrypt renewal process as it pertains to execution of the cert.sh script.

switch to using dedicated vars for the letsencrypt script
update script and docs to reflect this change
update .env.shared to hold new keys: CERT_DOMAIN, CERT_S3_BUCKET

If this is approved I will upload the new .env.shared.

uploaded new shared env.


Translate core UI texts and copies

Upstream Tasks

https://github.com/thematters/matters-web/issues/2756

Tasks

[ ] Extract translations to (JSON) files;
[ ] Hand over to colleagues for translation [0];
[ ] Compile and commit back to codebase;

Refs
[0] https://crowdin.com
[1] https://github.com/formatjs/formatjs/blob/main/crowdin.yml

@Jasmine-liang This is accomplished ?

Yes


"Could not find control plane"

Describe the bug
The az aks show is to demonstrate that this cluster does, in fact, exist:
» az aks show -g akscorp -n akscorp >/dev/null && printf '(success.)\n'
(success.)
» az aks get-credentials --admin -g akscorp -n akscorp
(ControlPlaneNotFound) Could not find control plane with ID 5cfeec3b8842470001f05b2f.
Code: ControlPlaneNotFound
Message: Could not find control plane with ID 5cfeec3b8842470001f05b2f.
Exception Details:	(Unspecified) rpc error: code = NotFound desc = Control Plane not found
	Code: Unspecified
	Message: rpc error: code = NotFound desc = Control Plane not found

… I cannot reach the control plane via kubectl, either. Near as I can tell, Azure AKS is in an outage.
Related command
az aks get-credentials
Errors
(ControlPlaneNotFound) Could not find control plane with ID 5cfeec3b8842470001f05b2f.
Code: ControlPlaneNotFound
Message: Could not find control plane with ID 5cfeec3b8842470001f05b2f.
Exception Details:	(Unspecified) rpc error: code = NotFound desc = Control Plane not found
	Code: Unspecified
	Message: rpc error: code = NotFound desc = Control Plane not found

Issue script & Debug output
(Snipped. I don't have time to dig through & sanitize that much logging. Suffice to say the response from the API appears insane.)
cli.azure.cli.core.sdk.policies: Response status: 404
cli.azure.cli.core.sdk.policies: Response headers:
cli.azure.cli.core.sdk.policies:     'Cache-Control': 'no-cache'
cli.azure.cli.core.sdk.policies:     'Pragma': 'no-cache'
cli.azure.cli.core.sdk.policies:     'Content-Length': '285'
cli.azure.cli.core.sdk.policies:     'Content-Type': 'application/json'
cli.azure.cli.core.sdk.policies:     'Expires': '-1'
cli.azure.cli.core.sdk.policies:     'x-ms-ratelimit-remaining-subscription-writes': '1199'
cli.azure.cli.core.sdk.policies:     'x-ms-correlation-request-id': 'd8e24758-95bf-4cb1-834f-8d47b70c8edc'
cli.azure.cli.core.sdk.policies:     'x-ms-request-id': '1c31460f-5b1c-4fd2-92d1-e6bfd3e0289e'
cli.azure.cli.core.sdk.policies:     'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
cli.azure.cli.core.sdk.policies:     'x-ms-routing-request-id': 'EASTUS2:20230920T203608Z:d8e24758-95bf-4cb1-834f-8d47b70c8edc'
cli.azure.cli.core.sdk.policies:     'X-Content-Type-Options': 'nosniff'
cli.azure.cli.core.sdk.policies:     'X-Cache': 'CONFIG_NOCACHE'
cli.azure.cli.core.sdk.policies:     'X-MSEdge-Ref': 'Ref A: AA8BE0ED400E4CBBACB0680C04CBB25A Ref B: MNZ221060608051 Ref C: 2023-09-20T20:36:08Z'
cli.azure.cli.core.sdk.policies:     'Date': 'Wed, 20 Sep 2023 20:36:08 GMT'
cli.azure.cli.core.sdk.policies: Response content:
cli.azure.cli.core.sdk.policies: {
  "code": "ControlPlaneNotFound",
  "details": [
   {
    "code": "Unspecified",
    "message": "rpc error: code = NotFound desc = Control Plane not found"
   }
  ],
  "message": "Could not find control plane with ID 5cfeec3b8842470001f05b2f.",
  "subcode": "ControlPlaneNotFound"
 }

Expected behavior
… this command should succeed. The cluster exists, & I have access to it.
(And if either of those assumptions turn out to be wrong, then it should emit a usable diagnostic.)
Additionally, Azure's status page should reflect the actual status of services.
Environment Summary
» az --version
azure-cli                         2.50.0 *

core                              2.50.0 *
telemetry                          1.0.8 *

Extensions:
automation                         0.1.1
databricks                         0.8.0
ssh                                2.0.1
storage-preview                    0.8.3

Dependencies:
msal                              1.22.0
azure-mgmt-resource             23.1.0b2

Additional context
No response

Thank you for opening this issue, we will look into it.

(Additionally, this is support ticket ID<PHONE_NUMBER>013939 .)

@roy-work Thanks for reaching out to us and reporting this issue. We are looking into this issue and we will provide an update.

Hey @roy-work, sorry for the inconvenience, this is not a client side issue. AKS team has helped restore your cluster from server side. Please check whether its current status meets your expectations.

@FumingZhang Apologies, I did not see your reply in time. Support refused to support us, as we're on 1.24¹. So, I attempted to upgrade the cluster.
Prior to the upgrade, I attempted to reach the cluster, and wasn't able to. I don't think I attempted to refresh the credentials until after the upgrade had started. However, after the upgrade started, I was able to reach the API server, but the cert was expired, or something; I refreshed the credentials and all was good. The API server's URL appears to have changed, which I did not expect, and I wonder if that was related.
¹I am so over this excuse. People cannot get to a supported version, because stuff is constantly not working, and support's eternal answer is "we don't support that version". Make it easier for me to upgrade, and I will keep up to date, but right now it's a massive pain in my side, and I'm starting to seriously wonder what benefit AKS has over a kubeadm cluster on some VMs.

@roy-work Thanks for getting back. Apologies for the inconvenience caused on this from the support standpoint. As mentioned by @FumingZhang in the above comment AKS team has helped restore your cluster from server side. Could you please check again and reconfirm if you are still facing the same issue ? Awaiting your reply.

@roy-work I hope you had a chance to look at the above comment.  If you need any further assistance on this issue in future, please feel free to reopen this thread. We would be happy to help.


Feat/table row dd icon

ClickUp Ticket: https://app.clickup.com/t/8685dq6pt
What (if anything) did you refactor?

The toggle functionality that was handled by the row.name via a Link element has now been replaced with an IconButton at the end of each row. When you click on an initial AddIcon within a row it will expand that row's children and the icon will transform into a RemoveIcon to indicate that the child element is collapsable. Please note that I added a tabIndex={0} property to each IconButton so that the element would be accessible via keyboard.

Is there anything that you need from your teammate?

Please review and let me know if you have any questions or concerns.

Results table with new IconButtons in each row:

Mobile:

211 Results table with new IconButtons in each row:

I feel like the +/- looks a little awkward and is taking up a lot of space on the right side of the table.


dosn't work

Hello, I have an error I am under linux here is the error: salah@salah:~/LivePaper./build/live-paper assets/test.gif &
[2] 20563
Sincerely,
Help Me

There is no error in the output you have posted. But your path to test.gif seems to be incorrect. If it is correct and nothing is displayed, then your desktop manager is probably using a compositor, which LivePaper doesn't support at the moment :(


Changed Extensions and Mimes in FormatDescriptor from string[] to ReadOnlyCollection<string>

Also, I added an extension method that turns IEnumerable<T> into ReadOnlyCollection<T>, for convenience and readability.
This is intended to make it clear from the public interface of the class whether or not the members of the collection should be modified. I intend to do the same in more classes, in future pull requests.

@cameronwhite I understand what you are saying. Allow me to explain my reasoning so that you can make a decision.
tl;dr: I'm trading compiler-enforced immutability for a few extra allocations.
In the original code, the references to the array arguments were being assigned to the properties directly. This would allow someone to modify what is supposed to be the state of the object by manipulating the arrays, which I don't think is a good practice. Thus, a snapshot of the collection is made. This of course introduces a new memory allocation, but it is not at all uncommon, especially in library functions. I know that, in practice, the constructor is only being called with arrays created at the point of invocation, but this makes the intent clearer.
Since I've determined (in the previous step) that a copy of the array elements will be made one way or the other, and I see that it will never be modified, I may as well create an ImmutableArray<T> instead of a regular array T[]; but notice that I'm doing it behind the scenes, in an extension method, using a private collection type that inherits from ReadOnlyCollection<T> but that nobody will ever see from the outside. This gives information about its immutability at the type level. The extra allocations only happen the first time that this extension method is called. If they were to call the method a second time, the pattern matching would detect it and just return the same reference, with no extra allocations being made. I'm defensively writing this extension method so that it can be used in other parts of the project that expose collection properties, not just FormatDescriptor.
Finally, to understand why the separate variables were added, notice that I changed the signature of the constructor. Instead of getting string[] they are now getting IEnumerable<string>. At the same time, I am trying to avoid:

Iterating the source IEnumerables twice. They are being iterated in foreach loops further down in the body of the constructor. I want to ensure that they will only be iterated once, as iteration may be expensive or someone may pass a malicious IEnumerable that gives a different sequence of items the second time.
Relying on the current state of the properties. Before they are assigned a value, Extensions and Mimes are null.

My reasoning may sound too strict, but it comes from experience. I've used these principles to refactor code that seemed untractable.

Thanks!

I think that's a fair argument for the immutable array and I'm okay with that change - perhaps you can add some of the info from your comment into the code comments so it's recorded there?
For the second part, maybe there'd be a compiler warning if this.Extensions was read before being initialized? Since it's not a super complicated method I feel it's probably the most readable to do something like

this.Extensions = extensions.ToReadOnlyCollection();
...
foreach (string ext in this.Extensions)
...

versus adding a third variable that has some version of the list :)

Thanks, all the changes look good
I just noted one additional fix, and the formatting check is also failing (maybe from line endings?)

I just removed the redundant null check and ran dotnet format to see if anything came up. Apparently several files were changed by it.
I don't think that the formatting check is failing from the changes in this pull request. I just checked all the line endings and they are all CRLF. The checks also failed in a previous one (where I just couldn't find the problem so I gave up and closed it).

Yeah, I don't quite understand why, but it seems that normalizing the line endings in the problematic files to LF solved the formatting issue, even though most (all?) of these files weren't originally involved in this pull request. 🤷♂

Sorry for the formatting troubles! 😢  The master branch CI build was passing this okay, but perhaps something with git's line ending conversion messed things up for you


Cannot run demo in pycharm(2019.1) in windows 10.

Hi, i have successfully run this demo in Ubuntu, but when i ran it in pycharm(2019.1 version) in windows 10, it cannot start training, i attached the information in pycharm terminal in the fowllowing .txt file. The NVIDIA GNU TOOL KIT(CUDA+CUDNN) have been installed， please have a look at the attached .txt file, thanks.
demoroutenet_pycharm.TXT

Hello,
We tested the code in Windows 10 with PyCharm and it worked. Probably, you have a problem with the library dependencies or the CUDA distribution. Please make sure you are using the same versions of the libraries listed in the "requirements.txt" file.
Regards,
José

Thanks for replying in a short time, i checked the installed libraries for "requirements.txt" file once again, it matches requirements.txt. For my test in windows, i installed CUDA(10.0 ver.) and CUDNN(7.6.4 ver.), so i wonder if there is something different from your CUDA&CUDNN version.  Thanks, Wayne

Hello Wayne,
Please check you are using TensorFlow v1.14. In principle, with this version you should use CUDA v10.0 and CUDNN v7.4. Probably, you are not using a valid CUDNN version.
Also, remember adding the environment variables in Windows:
# SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin;%PATH%
# SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\extras\CUPTI\libx64;%PATH%
# SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include;%PATH%
# SET PATH=C:\tools\cuda\bin;%PATH%
Regards,
José

Hi José, i re-installed CUDNN7.4.2 for testing, but still the demo cannot run. i debuged routenet_with_link_cap.py in pycharm, it showed like this:
Instructions for updating:
Use standard file utilities to get mtimes.
I0326 11:44:22.388325  4452 session_manager.py:500] Running local_init_op.
I0326 11:44:22.478085  4452 session_manager.py:502] Done running local_init_op.
I0326 11:44:28.776959  4452 basic_session_run_hooks.py:606] Saving checkpoints for 0 into ./CheckPoints/nsfnetbw\model.ckpt.
W0326 11:45:50.676099  4452 ops.py:465] Tensor._shape is private, use Tensor.shape instead. Tensor._shape will eventually be removed.
W0326 11:45:50.701011  4452 ops.py:465] Tensor._shape is private, use Tensor.shape instead. Tensor._shape will eventually be removed.
Process finished with exit code -1073741819 (0xC0000005)

In pycharm terminal, i put this:
python routenet_with_link_cap.py train --hparams="l2=0.1,dropout_rate=0.5,link_state_dim=32,path_state_dim=32,readout_units=256,learning_rate=0.001,T=8" --train d:/omnetpp-6.0pre7/samples/routenet/nsfnetbw/tfrecords/train/.tfrecords --train_steps 50000 --eval_ d:/omnetpp-6.0pre7/samples/routenet/nsfnetbw/tfrecords/evaluate/.tfrecords --model_dir ./CheckPoints/nsfnetbw
Is this command right? i wonder the running failure is because of the wrong "--train " parameter and "--eval_" parameter  in windows10. That means the demo cannot get "*.tfrecords" from the right file path.

Hi Watson,
Yes, the command looks right. I assume that the paths to "train" and "eval_" include a wildcard at the end ("...*.tfrecords") but it was removed due to the Markdown language.
I would try to execute it from the Windows terminal just to discard it is a problem with PyCharm.
Regards,
José

Hi José, i did some tests for the wildcard("....tfrecords") , it turned out to be the problem with Markdown. More over, i changed the  "train" and "eval_" as input parameters($3 and $4) like this:
sh run_routenet.sh train nsfnetbw 50000 d:/tfrecords/train/.* d:/tfrecords/evaluate/.
Also, some changes in run_routenet.sh:
if [[ "$1" = "train" ]]; then
python routenet_with_link_cap.py train --hparams="l2=0.1,dropout_rate=0.5,link_state_dim=32,path_state_dim=32,readout_units=256,learning_rate=0.001,T=8" --train_steps $3 --train $4  --eval_ $5 --model_dir ./CheckPoints/$2

fi
However, when i checked the file "graph.pbtxt", it could only find one file(maybe the first one) in "nsfnetbw\tfrecords\train", here it is:
attr {
key: "value"
value {
tensor {
dtype: DT_STRING
tensor_shape {
dim {
size: 1
}
}
string_val: "d:/tfrecords/train/results_nsfnetbw_10-12_Routing-SP-k-0_0_124.tfrecords"
}
}
}
}
Best regards,
Wayne

Hi Wayne,
Please note that this demo is prepared to use the datasets we provide here ('datasets_v0').
Looking at the names of your tfrecords I see you are using 'datasets_v1', which have a different structure. In this case, you would need to modify the code to read correctly the tfrecords.
Regards,
José

Yes, i did use datasets_v0 for testing. For datasets_v0, i ran it well in Ubuntu, but for the reason of wildcard("/*.tfrecords"), the demo couldnot get the right path for xx.tfrecords files in pycharm terminal(windows cmd). For the testing above, i put "train" and "eval_" as input parameters($4 and $5) trying to solve the problem of wildcard, so i am puzzled why it found only one .tfrecords file in "graph.pbtxt".


Delete.cshtml Scaffolding Missing ID Field

Steps to reproduce
Create new MVC controller and views using VS2015 scaffold.
Build and run project.
The issue
The Delete.cshtml file generated by the scaffold is missing a reference to the ID field. Missing line:
<input type="hidden" asp-for="ID" />
Further technical details
EF Core version: 1.0.1
EF Tool version: 1.0.0-preview2-update1
Operating system: Windows
Visual Studio version: VS 2015 Update 3

Moved to https://github.com/aspnet/Scaffolding/issues/308


NACS certificate renewal (DEV)

Devops guys create .csr (certificate signing request) on the NACS backend
This file will be send to Matt White and the MOJ PKI team
3.This team will either create or ask Entrust to create a new certificate
4.New certificate will be sent to devops
5.New certificate would be installed to NACS dev environment first (on NACS backend by devops)
6.LAN/WIFI engineers would do testing to ensure that all is working
7.New certificate would be installed to NACS prod environment (on NACS backend by devopsMore details TBD.

Useful Contacts:

Emile Swarts (a contractor who helped build NACS but should still be available in the MoJ)
Mitchel Dawson
Matt White

We need to do the certificate signing request.  Matti is reaching out to Emilie to provide context of how to do this.

Comments from Matti after discussion with Emile:
Spoke briefly with Emile about this. So it seems the private key and certificates are stored on secured S3 bucket. We can create a new CSR with Openssl and this should create a private key which we then would replace on the S3 bucket (dev). New cert would be added there too when it’s done on Entrust by using the CSR.
I think this can be tested when ever and when you are happy with the results (i.e. new private key was created and we know where the old key and cert is located), we can create the new cert and test on Dev.
The script which was used to do the last one from Emile:
csr.sh
#!/bin/bash
set -e
#openssl genrsa -out radsec.key
openssl req -new -key radsec.key -out radsec.csr -config csr.cnf
#openssl x509 -req -days 365 -in radsec.csr -signkey radsec.key -out radsec.crt -extensions req_ext -extfile csr.cnf
csr.cnf
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no
[req_distinguished_name]
C="GB"
O="Ministry of Justice"
OU="Digital & Technology"
CN="radsec.network-access-control.service.justice.gov.uk"
<EMAIL_ADDRESS>[v3_req]
subjectAltName = @alt_names
[alt_names]
DNS.1 = radsec.dev.network-access-control.service.justice.gov.uk
DNS.2 = radsec.prep.network-access-control.service.justice.gov.uk

Hey team! Please add your planning poker estimate with Zenhub @juddin927 @smjmoj @darey-io @satishgummadellimoj

CSR and private key for Dev has been created. It is now in blocked until Matt becomes available as he is currently busy on DHCP work.
What is needed

Replace private key in parameter store
Send the CSR to Matt
Matt to raise the certificate request using the CSR

EAP server certificate has been renewed in NAC DEV environment


Minor fixes

I clarified the similarity transform, per Francois. And I found what I think is a bug. A typo prevented an input variable from being passed to a class, instead, the class member was assigned to itself. The compiler was complaining.

From the diff it is not clear what the bug is about. It happens in the line that says:
gravity(gravity)
which did not change. Yet the input variable was gravitity, and was not used. Now it is renamed to gravity and is used.
I find it quite confusing that the input variable names are the same as class member names. That is not a nice practice.

Strange, that part of the code is very old, but there was clearly a typo there. The message is not clear as whether the patch fix or not the problem. Do I need to investigate this?
As for the convention for using the same input and class member, I agree that it can be confusing. In theory, we use that mainly when the constructor just copies the inputs to the member as they are the same concept and discarded right away. I know that some conventions use a suffix to make to tag members like m_variableName, but I find that heavy. If there is a doubt in the function call, I tend to use this->variableName. I'm not sure if some conventions tag input variable instead.

Yes, my patch fixes the problem. You can just read the whole block of code, up to gravity(gravity) before my fix, and after the fix. Again, the input is has a typo: gravitity instead of gravity.
If I were to write that code I would use gravity_in as input, and gravity as member variable, so the invocation would be gravity(gravity_in). Or even the m_gravity notation that you are not happy with.

ok great, thanks for the patch.
I'll open an issue about the unclarity of the inputs name and tag it as enhancement. It might need to wait until I've access to another intern as changing convention is a long reformating task (but we might discover other bugs by doing so).


Feature requests about the workspace explorer tree branches

VSCode Version: 1.20.0-ins
OS Version: win7x64

I don't know how is it hard for devs to implement, but I'm gonna propose it anyway...
So, when I take a glance at workspace explorer tree, for me it always hard to figure out - what file belongs to what folder... so, branches would make it much more easier:
 --->
Don't you think?..
And here is one more idea about hover effect: make highlighting of each file in different folder group - different. Not for width 100% for any file. Also it would be great - to highlight specific branch (from root of tree to hovered file) with more brightness or somehow.
And maybe highlight all folders, which concerned with a file we hovered, and go up to very root.
example:

Maybe a little border-radius for highlighted rectangles, a little transition... and it would be great.

Duplicate of https://github.com/Microsoft/vscode/issues/17777


Use a single Any CPU build configuration

I've updated the solution and Lucene.Net project to use only the Any CPU build configuration.
The x86 build configuration was set only in the Lucene.Net project and produced the AnyCPU binary anyway.
This removes the x86 and Mixed solution configurations that are no longer needed.

Thanks!


New scenario

Hello,
I'm trying to create my first scenario on Valkyrie. I'm following this awesome guide : https://docs.google.com/document/d/1Gi5gTwKkw84Px0Lvk-bJ3Aml_vF3ZoljjB6a8FjWGt8/edit#
A step says that I have to create an issue to request that my scenario be linked to the Valkyrie Application. I'm note sure I quite understood it but here is the link.
https://github.com/Mudiver77/Scenarios
Many thanks in advance ... And sorry if that's not the way.

Thanks! I need to update some bits in the guide and add more.
You've done it correctly. Post here with a link to your packaged scenario. I'll add it now. Should be live in under an hour (the Google scrips to publish run on intervals).

Sorry within an hour of now, I apparently didn't ckic commit

Nice! Thank you very much !

The scenario is live, but you didnt change the Valkyrie language when you wrote it so it's showing as English, but you've not written it as such.

Thanks !
Yeah i noticed ... I will try to change that right away.
Le dim. 16 févr. 2020 à 09:52, scrubbless<EMAIL_ADDRESS>a
écrit :

The scenario is live, but you didnt change the Valkyrie language when you
wrote it so it's showing as English, but you've not written it as such.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/NPBruce/valkyrie/issues/1251?email_source=notifications&email_token=AORQJ7ULGLS25YEZV45USNTRDD5GTA5CNFSM4KUUBZAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEL4BDAQ#issuecomment-586682754,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AORQJ7WO6NCVGE3FCXVKJPLRDD5GTANCNFSM4KUUBZAA
.

I am not sure if you could do it in the editor, you may be able to change the app language and then repackage. But I think the default language is set on creation.
You may have to do it the manual way in the code. :)

Yeah, I went to the editor, changed the language, repackaged it, but it did
not work ...
How can I change that now ?
Le dim. 16 févr. 2020 à 10:01, scrubbless<EMAIL_ADDRESS>a
écrit :

I am not sure if you could do it in the editor, you may be able to change
the app language and then repackage. But I think the default language is
set on creation.
You may have to do it the manual way in the code. :)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/NPBruce/valkyrie/issues/1251?email_source=notifications&email_token=AORQJ7XBKQAQ6DSV4ANAFFTRDD6HFA5CNFSM4KUUBZAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEL4BIGY#issuecomment-586683419,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AORQJ7Q6KJRSSTDOIBF7JITRDD6HFANCNFSM4KUUBZAA
.

I edited my earlier post, but see you're working through email, here it is.
You will have to change the default language in the quest.ini.
And maybe edit the name of your localisation file. I'd need to have a look at the files to advise.
Do you have a repo with your unpackaged scenario? If so could you show me the path so I can look at the .ini files.
I think you'll need to do this:
Open your scenario folder in
%appdata%\valkyrie\MoM\editor
Rename the Localisation.English.txt file to whichever language you are have written the scenario in. I.e. localisation.Spanish.txt.
Then open the quests.ini and change the entry for localisation.english.txt to the language above i.e. localisation.Spanish.txt
Then change the default language of the scenario.
I.e.
default=Spanish

I followed your instructions and it's still not changing the language.
The only link I can provide you is this one, I don't have a repo with an
unpackaged scenario. But I found everything you told me to edit, and did
so, but there's still a U.K flag on my scenario in the app
https://github.com/Mudiver77/Scenarios/blob/master/RituelsImpies/RituelsImpies.ini
Le dim. 16 févr. 2020 à 10:22, scrubbless<EMAIL_ADDRESS>a
écrit :

I edited my earlier post, but see you're working through email, here it is.
You will have to change the default language in the quest.ini.
And maybe edit the name of your localisation file. I'd need to have a look
at the files to advise.
Do you have a repo with your unpackaged scenario? If so could you show me
the path so I can look at the .ini files.
I think you'll need to do this:
Open your scenario folder in
%appdata%\valkyrie\MoM\editor
Rename the Localisation.English.txt file to whichever language you are
have written the scenario in. I.e. localisation.Spanish.txt.
Then open the quests.ini and change the entry for localisation.english.txt
to the language above i.e. localisation.Spanish.txt
Then change the default language of the scenario.
I.e.
default=Spanish
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/NPBruce/valkyrie/issues/1251?email_source=notifications&email_token=AORQJ7QU4R3K6D273V7V6L3RDEAWDA5CNFSM4KUUBZAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEL4BU6Y#issuecomment-586685051,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AORQJ7UMZEQLMOGAZL22HRDRDEAWDANCNFSM4KUUBZAA
.

Your changes appear to have broken the scenario. The manifest can't pick up the data from your ini files so it's stopped displaying the scenario list!
I've just removed your scenario for now.
I have a copy of your scenario on my phoneif I get some time later I'll have a look at converting the language for you and send you the updated files.

Yeah I noticed, I deleted everything, will come back at it later. Don't
worry about it.
Le dim. 16 févr. 2020 à 11:25, scrubbless<EMAIL_ADDRESS>a
écrit :

Your changes appear to have broken the scenario. The manifest can't pick
up the data from your ini files so it's stopped displaying the scenario
list!
I've just removed your scenario for now.
I have a copy of your scenario on my phoneif I get some time later I'll
have a look at converting the language for you and send you the updated
files.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/NPBruce/valkyrie/issues/1251?email_source=notifications&email_token=AORQJ7XLD4AMSRTL44DBNADRDEH7ZA5CNFSM4KUUBZAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEL4C2JI#issuecomment-586689829,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AORQJ7QZIMTHSVSCS2GJS73RDEH7ZANCNFSM4KUUBZAA
.

I reuploaded everything on Github but I think it's still completely broken.
Here are some screenshots of what I did following the instructions you gave
me, if it can help in any way, which I doubt.
I'm really sorry for the disturbance, if that's too much trouble, I'll just
forget about it and leave you be !
Le dim. 16 févr. 2020 à 11:34, Anais AIT AISSA<EMAIL_ADDRESS>a écrit :

Yeah I noticed, I deleted everything, will come back at it later. Don't
worry about it.
Le dim. 16 févr. 2020 à 11:25, scrubbless<EMAIL_ADDRESS>a
écrit :

Your changes appear to have broken the scenario. The manifest can't pick
up the data from your ini files so it's stopped displaying the scenario
list!
I've just removed your scenario for now.
I have a copy of your scenario on my phoneif I get some time later I'll
have a look at converting the language for you and send you the updated
files.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/NPBruce/valkyrie/issues/1251?email_source=notifications&email_token=AORQJ7XLD4AMSRTL44DBNADRDEH7ZA5CNFSM4KUUBZAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEL4C2JI#issuecomment-586689829,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AORQJ7QZIMTHSVSCS2GJS73RDEH7ZANCNFSM4KUUBZAA
.

I am out today but I'd be happy to help you fix it when I have some time later :)

This is very, very nice of you. Thank you very much.
Here is the link to the scenario I re-uploaded yesterday after the "bug"
:   https://github.com/Mudiver77/Scenarios
To be honest I have absolutely no idea of what to do right now in order to
fix this mess
Le dim. 16 févr. 2020 à 12:16, scrubbless<EMAIL_ADDRESS>a
écrit :

I am out today but I'd be happy to help you fix it when I have some time
later :)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/NPBruce/valkyrie/issues/1251?email_source=notifications&email_token=AORQJ7VWXKHU6KUXMB4XZEDRDEOAPA5CNFSM4KUUBZAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEL4D5PA#issuecomment-586694332,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AORQJ7VXBQJ6QBBY6LPZCQDRDEOAPANCNFSM4KUUBZAA
.

Ok I have work out the issue.
You need to change the default language in the Quest.ini and then the localisation.english.txt to localisation.french.txt.
But also need to change the language inside the localisation file to French otherwise it just creates a new file.

to french

Here are the files, if you'd pefer just to copy them over:
Localization.French.txt
You'll need to delete the .txt off the end as it won't let me upload a .ini
quest.ini.txt
Or here is the fixed scenario as a zip file, just extract it to you Editor folder
RituelsImpies.zip

Thank you again so much i_i
I extracted the zip into the editor folder, I did not want to fail and
cause another mess !
I also pushed this corrected version into my Github
Le lun. 17 févr. 2020 à 14:47, scrubbless<EMAIL_ADDRESS>a
écrit :

Ok I have work out the issue.
You need to change the default language in the Quest.ini and then the
localisation.english.txt to localisation.french.txt.
But also need to change the language inside the localisation file to
French otherwise it just creates a new file.
[image: image]
https://user-images.githubusercontent.com/32058089/74659229-d9869000-518b-11ea-95bd-8a81aed147a8.png
to french
[image: image]
https://user-images.githubusercontent.com/32058089/74659209-d2f81880-518b-11ea-8e29-a2bd9eede69a.png
Here are the files, if you'd pefer just to copy them over:
Localization.French.txt
https://github.com/NPBruce/valkyrie/files/4214060/Localization.French.txt
You'll need to delete the .txt off the end as it won't let me upload a .ini
quest.ini.txt
https://github.com/NPBruce/valkyrie/files/4214063/quest.ini.txt
Or here is the fixed scenario as a zip file, just extract it to you Editor
folder
RituelsImpies.zip
https://github.com/NPBruce/valkyrie/files/4214067/RituelsImpies.zip
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/NPBruce/valkyrie/issues/1251?email_source=notifications&email_token=AORQJ7S4TTT7AA2EI5UAFDTRDKIQ7A5CNFSM4KUUBZAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEL6PADY#issuecomment-587001871,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AORQJ7RREWCYN7VYXBV7HC3RDKIQ7ANCNFSM4KUUBZAA
.

Hi @Mudiver77
You'll need to extract the zip to your %appdata%\valkyrie\mom\editor folder and use it to publish a new scenario. The publish the package that is created

Jeez, I'm sorry, I'm so dense ...
It's done !

Yikes, sorry, I'm just too dense.
It's done !

Not at all, it's new ground. Don't worry about it!

Ok published again! Let's see how this goes

Ok looks good, it's showing in the lists and is the correct language! I'll close this issue off.

@Mudiver77 have you made the repo private or deleted it? Your scenario repository is no longer assessable. I get a 404 and it's generating errors in Valkyrie.
I've removed it from the manifest list for now to avoid it causing problems.

It's been a week so assume you just don't want it published any more. Please reopen the case or open a new case to publish it again.
I'll remove it from the stats sheet also as to not confuse anyone.