Random Unable to cast object of type 'System.Collections.Generic.List`1[System.Object]' to type 'System.Uri'

Hi, after upgrading from netcoreapp3.1 to net6.0 we having facing some random System.InvalidCastException. It happens only on calls of Google.Cloud.Storage.V1.StorageClient.UploadObject.
Exemple of the code
using System.IO;
using NLog;
using Google.Cloud.Storage.V1;
using NewRelic.Api.Agent;

namespace Storage
{
    internal class GCPStorageClient : IStorageClient
    {
        private Logger _Logger;
        private StorageClient _StorageClient;
        public GCPStorageClient()
        {
            this._Logger = LogManager.GetCurrentClassLogger();
            this._StorageClient = StorageClient.Create();
        }

        [Transaction]
        public void Download(string bucket, string localFilePath, string filename)
        {
            this._Logger.Info($"Preparing to download {filename} from the {bucket} bucket");

            using (var stream = File.OpenWrite(localFilePath))
            {
                this._StorageClient.DownloadObject(bucket, filename, stream);
            }

            this._Logger.Info($"Downloaded {filename} from the {bucket} bucket");
        }

        [Transaction]
        public void Upload(string bucket, string filename, FileStream stream)
        {
            this._Logger.Info($"Preparing to upload {filename} to the {bucket} bucket");

            this._StorageClient.UploadObject(bucket, filename, "application/octet-stream", stream);

            this._Logger.Info($"Uploaded {filename} to the {bucket} bucket");
        }
    }
}

Stack trace
System.InvalidCastException: Unable to cast object of type 'System.Collections.Generic.List`1[System.Object]' to type 'System.Uri'.
at Google.Cloud.Storage.V1.StorageClientImpl.UploadHelper.CheckFinalProgress()
at Google.Cloud.Storage.V1.StorageClientImpl.UploadHelper.Execute()
at Storage.GCPStorageClient.Upload(String bucket, String filename, FileStream stream) in /app/src/Storage/GCPStorageClient.cs:39

Project dependencies
    <PackageReference Include="AWSSDK.S3" Version="3.3.20" />
    <PackageReference Include="Google.Cloud.Storage.V1" Version="3.7.0" />
    <PackageReference Include="Microsoft.Extensions.CommandLineUtils" Version="1.1.1" />
    <PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="3.1.4" />
    <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.4" />
    <PackageReference Include="NLog" Version="4.7.2" />
    <PackageReference Include="RabbitMQ.Client" Version="6.3.0" />
    <PackageReference Include="System.Configuration.ConfigurationManager" Version="4.7.0" />
    <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
    <PackageReference Include="NewRelic.Agent.Api" Version="8.37.0" />

Environment details

Programming language: C#
OS: Linux
Docker Image: mcr.microsoft.com/dotnet/runtime:6.0-alpine
Language runtime version: net6.0
Package: Google.Cloud.Storage.V1
Package version: 3.7.0

Thanks!

Transferred to google-cloud-dotnet as that's the repository containing Google.Cloud.Storage.V1.

When you say "random" - do you mean it only happens occasionally, or something else? Are you able to reproduce this in a standalone console app?
(Note that today is a UK public holiday, so I won't be able to look in detail, but if you could provide more information I'll look on Monday.)

Please note that we won't be able to help with this issue without any more information.

Closing due to lack of information. If you're able to reproduce this and/or provide more information, we can reopen it.

Hi,
In our production environment, we encountered the same error.
It seems to happen randomly. When a user retries to upload the same file, it works.
I have been trying to reproduce the exception locally to no avail.
The stack trace in our logs reads:
Unable to cast object of type 'System.Collections.Generic.List`1[System.Object]' to type 'System.Uri'
at Google.Cloud.Storage.V1.StorageClientImpl.UploadHelper.CheckFinalProgress()
at Google.Cloud.Storage.V1.StorageClientImpl.UploadHelper.ExecuteAsync(CancellationToken cancellationToken)
at <our own app>

We are using Google.Cloud.Storage.V1 v4.2.0 and dotnet 6.0
Thanks!

@lukas-iamd: Thanks, I'll have another look at the underlying code. How often does this happen, and could you tell us more about the production environment? (For example, with your knowledge of the context, does it seem likely to be a threading issue, or is this a low-traffic service which is unlikely to be uploading multiple files at the same time?)

Ah - I think I understand. CheckFinalProgress will throw an exception if it's in the IUploadProgress. So basically, the exception is happening earlier, and it just appears to be thrown from CheckFinalProgress. That'll make it significantly harder to work out the original issue, of course... but I'll see what I can do.

Thanks for the quick response!
It doesn't happen very often. On average like once a day.
It could be that it happens when two users try to upload at the same time, but at this time, we do not have the logs to verify this. If it would help, I could add them.

Hmm... I've got one possible theory (around failed HTTP header parsing), but I haven't managed to reproduce this yet. Are you able to pinpoint exactly which version of .NET 6.0 you're using? Additionally, I suspect that using the built-in logging for the library may help too, but it would be very "chatty" by default - is this an ASP.NET Core app? (If I were to create an adapter from Google.Apis.Core.Logging.ILogger to propagate to a Microsoft.Extensions.Logging.ILogger, would you be able to use that?)

Okay, I've decided that without a better stack trace, we'd really have a hard time making progress on this.
I've added an extension method for IUploadProgress to produce better stack traces - but it'll take a while before that's available and integrated into a Google.Cloud.Storage.V1 build. Will ping this bug again when we've got a version ready for testing.

Just to set expectations, my estimated timeline for this is:

Publish new Google.Apis and Google.Apis.Core libraries on Feb 20th
Publish new Google.Cloud.Storage.V1 on 21st

The new library won't fix the problem - it'll just make it much, much easier to work out what's going on, by giving a decent stack trace. Once we've seen a good stack trace, we can diagnose things better. It's hard to estimate how long it will then take to fix - but hopefully it won't be too bad, particularly if we can reproduce it reliably based on the extra information.

Thanks!
Once the new version is released, we will update to the lates version. When the problem occurs again, I will post the logs here.

@lukas-iamd: I've now released Google.Cloud.Storage.V1 version 4.4.0. You shouldn't need to change your code at all, but you should now get much more helpful stack traces. If you could update and then post those stack traces, that would be wonderful, thanks.

Hi Jon
The error happend again.
Exception: Unable to cast object of type 'System.Collections.Generic.List1[System.Object]' to type 'System.Uri'.
StackTrace: at System.Net.Http.Headers.HttpResponseHeaders.get_Location() at Google.Apis.Upload.ResumableUpload1.InitiateSessionAsync(CancellationToken cancellationToken) at Google.Apis.Upload.ResumableUpload.UploadAsync(CancellationToken cancellationToken) at Google.Apis.Upload.UploadProgress.ThrowOnFailure(IUploadProgress progress) at Google.Cloud.Storage.V1.StorageClientImpl.UploadHelper.ExecuteAsync(CancellationToken cancellationToken)

The app is published as self-contained using dotnet version 6.0.10

Thank you, that's incredibly helpful. Will try using that version and will update this issue with any progress. It feels a lot closer now, thanks to your extra info.

@lukas-iamd: Having spent some hours on it this morning, I'm admitting partial defeat, and filing a bug on the dotnet repo. Please could you confirm other environment info, e.g. docker container, OS etc?

It runs as a CLI via IIS on Windows Server 2019.

@lukas-iamd: That's good to know, thanks. (And makes it less of a problem that I'm debugging on Windows...)
Will update that issue.

@ramondelemos and @lukas-iamd: As mentioned in the linked issue, there was a problem with NewRelic a while ago which could have provoked this. Please could you let me know if you're using NewRelic?

A NewRelic infrastructure agent is running on the server. We will disable it for a while and see if that solves the problem.
I will report back in a few days.

@lukas-iamd: Great, thanks. Fingers crossed. (And if that is the problem, it sounds like you may just be able to update to a newer version.)

@lukas-iamd: So, it's been about a week - have you observed any issues since removing the agent integration? (To be clear, I don't believe the problem is in the agent itself, but in the .NET code that integrates with the agent.)

@jskeet Sorry it took so long to get back to you. Removing the NewRelic agent required a restart of the server which had to be planned.
But since it was removed, we have not yet encountered the error again! (if it should happen again I will ping you)
Thank you very much for all the help!

Fabulous - that's really good to hear. Hopefully just upgrading to a new version should fix the problem.
I'll close this issue now as it sounds like we've got to the bottom of it - but please just add a new comment if it happens again, and I'll reopen the issue.


change slice declarations to array where length already obvious

Description
I change some slice declarations to array when the length is already known while initialization.
It might be a tiny performance improvement by preventing dynamic sizing.
Issue reference
We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.
Please reference the issue this PR will close: #[issue number]
#2955 https://github.com/dapr/dapr/issues/2955
Checklist
Please make sure you've  completed the relevant tasks for this PR, out of the following list:

[X] Code compiles correctly
[ ] Created/updated tests
[X] Unit tests passing
[ ] End-to-end tests passing
[ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Specification has been updated / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Provided sample for the feature / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

@mstrYoda If you fix the one gofmt issue then it LGTM.

Thank you for your review, I pushed a commit with go fmt 👍


Custom loader for RLayerTile

Hi, I try to load tile from a server, and i recieve error, because my request is without correct token. How can i provide axios or token to request?

What form does your token have? URL parameter or HTTP header?

As http header

Check https://mmomtchev.github.io/rlayers/#/addon for how to extend rlayers
Create your own layer class extending from RLayerTile and overload only this function:
class AuthLayerTyle extends RLayerTile {
  createSource(): void {
      this.source = new XYZ({
          url: this.props.url,
          projection: this.props.projection,
          tileGrid: this.props.tileGrid,
          tileLoadFunction: <your_tile_load_function>
      });
      this.eventSources = [this.ol, this.source];
}

Also check this stackoverflow answer which, even if it is a bit old, still works: https://stackoverflow.com/questions/49095151/how-to-add-a-http-header-to-openlayers4-requests
These days you can use the fetch API which is better.

Thanks a lot. It works


examples/perf/io-perf fails with segmentation fault with io-uring:

examples/perf/io-perf fails with segmentation fault with io-uring:
(gdb) run
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: io-perf --disk-path /dev/nvme2n1p2 --disk_size<PHONE_NUMBER>00 --io_uring
2024/05/09 15:54:40.117604|INFO |th=0000000000000000|photon_io_perf.cpp:79|main:Specify disk /dev/nvme2n1p2 size<PHONE_NUMBER>00
2024/05/09 15:54:40.117801|INFO |th=00007FFFF782A200|iouring-wrapper.cpp:668|new_iouring:Init event engine: iouring [is_master=1]
2024/05/09 15:54:40.117813|INFO |th=00007FFFF782A200|iouring-wrapper.cpp:516|check_register_file_support:iouring: register_files is enabled

Program received signal SIGSEGV, Segmentation fault.
0x0000000000817826 in free ()
(gdb) bt
#0  0x0000000000817826 in free ()
#1  0x0000000000440a54 in photon::iouringEngine::init() ()
#2  0x000000000043f664 in photon::new_iouring(bool) ()
#3  0x00000000004229d5 in photon::init(unsigned long, unsigned long, photon::PhotonOptions const&) ()
#4  0x000000000041c40a in main ()

Photon uses liburing 2.3, you can try this cmd to download and build from source
https://photonlibos.github.io/docs/introduction/how-to-build#case-1-staitcally-build-all-third-party-libs


[Windows] [IME] Typing number from NumPad is ignored at the first time when using IME

Describe the bug
Typing number from NumPad is ignored at the first time when using IME.
It works on 11.0.4, but fail on 11.0.5.
Maybe ref https://github.com/AvaloniaUI/Avalonia/pull/12942
To Reproduce
Steps to reproduce the behavior:

Open ControlCatalog.NetCore, and switch to TextBox page
Type 1 (NumPad1, not Digit1) on writable TextBox and nothing happened at the first time

Expected behavior
Typeing number from Numkey works well
Environment

OS: Windows
Avalonia-Version: 11.0.5

/cc @Gillibald


[WebXR] Raw camera access feature

This new feature implemented according to the specs in https://github.com/immersive-web/raw-camera-access/blob/main/explainer.md
Playground demo (once merged on using the snapshot) : #UV8FAB#2
A new feature was added - features now have an observable that will trigger when the feature attach or detach.

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

Snapshot stored with reference name:
refs/pull/14527/merge
Test environment:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14527/merge/index.html
To test a playground add it to the URL, for example:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14527/merge/index.html#WGZLGJ#4600
Links to test babylon tools with this snapshot:
https://playground.babylonjs.com/?snapshot=refs/pull/14527/merge
https://sandbox.babylonjs.com/?snapshot=refs/pull/14527/merge
https://gui.babylonjs.com/?snapshot=refs/pull/14527/merge
https://nme.babylonjs.com/?snapshot=refs/pull/14527/merge
To test the snapshot in the playground with a playground ID add it after the snapshot query string:
https://playground.babylonjs.com/?snapshot=refs/pull/14527/merge#BCU1XR#0


Add docs on what needs to be redirected from well-known, not just a blanket redirect

I have other stuff that uses things in that directory, and also redirecting the whole thing would give you the power to generate LetsEncrypt certs for my domain :)

agreed! great point. @aaronpk raised this today too. will do.

done!


Randomize Nospam button

Nospam textbox is way too large, the button gets overlapped by the scrollbar. Shorten the textbox so that the button's right side aligns with the top and bottom controls' sides.

https://github.com/Reverp/Toxy/commit/9e7ac023452674920a7b352ae41f77ba11b2c84c
Is this better?

Absolutely what I had in mind. Thank you.


update EXIV2 to 1.x

EXIV2 0.27.x uses std::auto_ptr which is removed in C++17. But 1.x version is not yet released. https://github.com/Exiv2/exiv2/tags

as tmp solution we should use https://github.com/qgis/QGIS/blob/9d6a6a223379fa350017d45985bba6805289f1b2/src/core/CMakeLists.txt#L2050
in Input


Xpath + evaluate problem. puppeteer -> puphpeteer conversion help.

Hi!
I need some help. I really can't comprehend how to convert this to puphpeteer version:
const linkToNewest = await page.evaluate(el => el.href, (await page.$x("//a[text()='thislink'][1]"))[0]);

Basically I'm trying to get href from a link that has a text "thislink".
Thank you in advance.

To answer to my own question and help someone in need.
$button = $page->querySelectorXPath("//a[text()='thislink'][1]")[0];
$href = $button->evaluate(JsFunction::createWithParameters(['el'])->body("return el.href"));

Thanks a lot man. This library has got awful documentation.

I agree but at least he put in the work to make it possible, we should contribute! great add by the way!


bringing docblock in line with documentation, re: Image::resize()

re: $image->resize(300, null, function($constraint) { /* stuff */ }) and $image->resize(300), this stops phpstan from flagging the null parameter examples as invalid, flagging them with Parameter #2 $height of method Intervention\Image\Image::resize() expects int, null given.

thanks for merging! :D


Cron backup regex format

When attempting to deploy the example config on kubernetes, the mailcow-dind pod fails to start with this error message: Incorrect format for 0 0 * * 0.
While it is a valid cron expression, CRON_REGEX seems to have an extra capture group in ./images/mailcow-dind/cmd.sh:
CRON_REGEX='/^([0-59]|\*) ([0-23]|\*) ([1-31]|\*) ([1-12]|\*) ([1-7]|\*) ([1900-3000]|\*)$/'

If the last part should be omitted, the CRON_BACKUP value (currently * * * * * *) should reflect this change in order to run the container from .travis.yml.

@LEI thanks for pointing that out. The package crond from alpine allows an entry for years which I added but totally forgot to represent that in the example. Let me know if the change works out for you.

That's probably more of an issue with my tagging. I'll work on a better travis deployment strategy later today; but, in the meantime, I've modified the kubernetes example to use the docker image master tag.

Ignore the previous log, CRON_BACKUP was not set, my bad. However I still encountered Incorrect format for 0 0 * * 0 *, but I found out the week part of the expression must have a value between 0 and 6, at least in a "standard" cron : replacing ([1-7]|\*) with ([0-6]|\*) seems to work.
Other than that I had to tweak 2 or 3 things in the YAML files for it to work with my version of kubernetes, like lowercasing the image value in deployment.yaml and the port names in service.yaml.

@LEI thank you for posting your fixes. I'll patch them in.


Create GLOSSARY.md

Add Glossary.md to portal repository.

Decided to put glossary in rationale repo instead. Closing.


Support polymorphic scalar comparison functions in the multi-stage query engine

Fixes https://github.com/apache/pinot/issues/13699
The function registry was recently refactored in https://github.com/apache/pinot/pull/13573/ which also added support for polymorphic scalar functions.
This patch adds polymorphic scalar function implementations for = and != which are probably the most useful ones. A follow-up patch will add support for the remaining scalar comparison functions.
Currently, the function registry's lookup by argument type is only used in the v2 engine although eventually all usages of the lookup by argument number will be moved to the lookup by argument type (see https://github.com/apache/pinot/pull/13673 for instance). When that's done, these polymorphic scalar functions will automatically be supported by the v1 engine as well. Until that's done though, these new polymorphic scalar functions will default to the double based scalar comparison functions when looking up by argument number for backward compatibility.
Note that the polymorphic scalar comparison functions only support comparing two arguments of the same type. In case arguments of two different types need to be compared, an explicit cast should be added by the user. This behavior is similar to Postgres.
All the scalar comparison functions are marked as null intolerant because they should return null if any argument is null. Again, this matches Postgres behavior.

Note that the polymorphic scalar comparison functions only support comparing two arguments of the same type. In case arguments of two different types need to be compared, an explicit cast should be added by the user. This behavior is similar to Postgres.

AFAIU that is not 100% correct. Calcite will add implicit casts in case they can be used.

AFAIU that is not 100% correct. Calcite will add implicit casts in case they can be used.

Yeah, that's a valid point, but in this case it'll still mean that the scalar comparison functions should only be called with arguments of the same type. I'll update the wording, thanks!

Based on our offline discussion, I've also pushed a commit adding polymorphic support for the >, >=, <, <= operators in this PR itself.

There's a bug in PostAggregationHandler that is causing the query SELECT AirlineID, CASE WHEN Sum(ArrDelay) < 0 THEN 0 WHEN SUM(ArrDelay) > 0 THEN SUM(ArrDelay) END AS SumArrDelay FROM mytable GROUP BY AirlineID to fail in testHardcodedQueries with the following error:
java.lang.IllegalArgumentException: Unsupported function: less_than with argument types: [DOUBLE, STRING]
	at org.apache.pinot.core.query.postaggregation.PostAggregationFunction.<init>(PostAggregationFunction.java:45) ~[classes/:?]
	at org.apache.pinot.core.query.reduce.PostAggregationHandler$PostAggregationValueExtractor.<init>(PostAggregationHandler.java:164) ~[classes/:?]
	at org.apache.pinot.core.query.reduce.PostAggregationHandler.getValueExtractor(PostAggregationHandler.java:136) ~[classes/:?]
	at org.apache.pinot.core.query.reduce.PostAggregationHandler$PostAggregationValueExtractor.<init>(PostAggregationHandler.java:160) ~[classes/:?]
	at org.apache.pinot.core.query.reduce.PostAggregationHandler.getValueExtractor(PostAggregationHandler.java:136) ~[classes/:?]
	at org.apache.pinot.core.query.reduce.PostAggregationHandler.<init>(PostAggregationHandler.java:77) ~[classes/:?]
	at org.apache.pinot.core.query.reduce.GroupByDataTableReducer.processSingleFinalResult(GroupByDataTableReducer.java:427) ~[classes/:?]
	at org.apache.pinot.core.query.reduce.GroupByDataTableReducer.reduceAndSetResults(GroupByDataTableReducer.java:121) ~[classes/:?]
	at org.apache.pinot.core.query.reduce.BrokerReduceService.reduceOnDataTable(BrokerReduceService.java:155) ~[classes/:?]
	at org.apache.pinot.broker.requesthandler.SingleConnectionBrokerRequestHandler.processBrokerRequest(SingleConnectionBrokerRequestHandler.java:144) ~[classes/:?]
	at org.apache.pinot.broker.requesthandler.BaseSingleStageBrokerRequestHandler.handleRequest(BaseSingleStageBrokerRequestHandler.java:733) ~[classes/:?]
	at org.apache.pinot.broker.requesthandler.BaseBrokerRequestHandler.handleRequest(BaseBrokerRequestHandler.java:133) ~[classes/:?]
	at org.apache.pinot.broker.requesthandler.BrokerRequestHandlerDelegate.handleRequest(BrokerRequestHandlerDelegate.java:96) ~[classes/:?]
	at org.apache.pinot.broker.api.resources.PinotClientRequest.executeSqlQuery(PinotClientRequest.java:321) ~[classes/:?]

This is because all literals are being parsed into string literals here - https://github.com/apache/pinot/blob/835949b64529b8e5c0bb49474cdec2e17c9050f7/pinot-core/src/main/java/org/apache/pinot/core/query/reduce/PostAggregationHandler.java#L111
and this wasn't taken into account when https://github.com/apache/pinot/pull/13573 updated PostAggregationFunction to use argument type based function lookup instead of argument count based function lookup. Since this is a v1 engine entity, I've updated it to go back to argument type count based function lookup for now, until the literal handling is updated either in  https://github.com/apache/pinot/pull/13673 or in a separate followup PR.

Since this is a v1 engine entity, I've updated it to go back to argument count based function lookup for now, until the literal handling is updated either in https://github.com/apache/pinot/pull/13673 (which adds polymorphic scalar function support to some other v1 engine entities and also has util methods to convert between the Thrift literals and the Pinot types appropriately) or in a separate followup PR.

The alternative would be to fall back to the double based scalar comparison function in case of heterogeneous argument types in the polymorphic scalar comparison functions and rely on the FunctionInvoker's type conversion.


Replace slashes in an environment name to underscores

It fixes #32.

Can you please make the same change in the Lua wrapper to keep the two in sync?
Character replacement in Lua can be done via eid = eid:gsub('/', '_').

This is fine since it's server-side. Thanks @jihunchoi !

Looks good, could you please rebase your commit on master?

Could you explain what I should do more in detail please? There is no conflict with master.


Cluster stuck in "Updating" state forever even after a host that was in "unavailable" state came back to "active" state.

Rancher versions: Latest build from master
Steps to Reproduce:
Had a 1 node DO cluster with few workloads running on it successfully.
After a while host (host1) went to "Unavailable" state.
This resulted in a new node(host2) being created.
But even before this new node could fully be provisioned , host1 got to "active" state which resulted in host2 to be removed automatically.
After this cluster gets stuck in "Updating" state forever with the following message  - "waiting for etcd and controlplane nodes to be registered" ..
Cluster never recovers from this state.

Provisioning logs relating to host2 that was removed:
2018/03/22 21:40:36 [INFO] ClusterController cluster-fhdj2 completed with dropped err: [cluster-provisioner-controller] failed with : waiting for etcd and controlplane nodes to be registered
2018/03/22 21:40:36 [INFO] stdout: Creating CA: management-state/node/nodes/santest3me2/certs/ca.pem
2018/03/22 21:40:36 [INFO] stdout: Creating client certificate: management-state/node/nodes/santest3me2/certs/cert.pem
2018/03/22 21:40:36 [INFO] ClusterController cluster-fhdj2 completed with dropped err: [cluster-provisioner-controller] failed with : waiting for etcd and controlplane nodes to be registered
2018/03/22 21:40:36 [INFO] stdout: Running pre-create checks...
2018/03/22 21:40:39 [INFO] stdout: Creating machine...
2018/03/22 21:40:39 [INFO] stdout: (santest3me2) Creating SSH key...
2018/03/22 21:40:40 [INFO] stdout: (santest3me2) Creating Digital Ocean droplet...
2018/03/22 21:40:41 [INFO] stdout: (santest3me2) Waiting for IP address to be assigned to the Droplet...
2018/03/22 21:40:42 [INFO] Failed to update cluster [cluster-fhdj2] Operation cannot be fulfilled on clusters.management.cattle.io "cluster-fhdj2": the object has been modified; please apply your changes to the latest version and try again
2018/03/22 21:40:43 [INFO] stdout: Waiting for machine to be running, this may take a few minutes...
2018/03/22 21:41:02 [ERROR] Error during subscribe websocket: close sent
2018/03/22 21:41:02 [ERROR] Unknown error: websocket: close sent
2018/03/22 21:41:03 [INFO] ClusterController cluster-fhdj2 completed with dropped err: [cluster-provisioner-controller] failed with : waiting for etcd and controlplane nodes to be registered
2018/03/22 21:41:07 [INFO] stdout: Detecting operating system of created instance...
2018/03/22 21:41:07 [INFO] stdout: Waiting for SSH to be available...
2018/03/22 21:41:19 [INFO] ClusterController cluster-fhdj2 completed with dropped err: [cluster-provisioner-controller] failed with : waiting for etcd and controlplane nodes to be registered
2018/03/22 21:41:25 [INFO] stdout: Detecting the provisioner...
2018/03/22 21:41:26 [INFO] stdout: Provisioning with ubuntu(systemd)...
2018/03/22 21:41:40 [INFO] stdout: Installing Docker...
2018/03/22 21:41:59 [INFO] stdout: Copying certs to the local machine directory...
2018/03/22 21:42:00 [INFO] stdout: Copying certs to the remote machine...
2018/03/22 21:42:02 [INFO] ClusterController cluster-fhdj2 completed with dropped err: [cluster-provisioner-controller] failed with : waiting for etcd and controlplane nodes to be registered
2018/03/22 21:42:04 [INFO] stdout: Setting Docker configuration on the remote daemon...
2018/03/22 21:42:07 [INFO] stdout: Checking connection to Docker...
2018/03/22 21:42:07 [INFO] stdout: Docker is up and running!
2018/03/22 21:42:07 [INFO] stdout: To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env santest3me2
2018/03/22 21:42:07 [INFO] Generating and uploading node config santest3me2
2018/03/22 21:42:07 [INFO] ClusterController cluster-fhdj2 completed with dropped err: [cluster-provisioner-controller] failed with : waiting for etcd and controlplane nodes to be registered
2018/03/22 21:42:07 [INFO] Generating and uploading node config
E0322 21:42:22.827648       1 generic_controller.go:200] NodeController cluster-fhdj2/m-vjlxg [node-controller] failed with : Operation cannot be fulfilled on nodes.management.cattle.io "m-vjlxg": the object has been modified; please apply your changes to the latest version and try again
2018/03/22 21:42:22 [INFO] Provisioning cluster [cluster-fhdj2]
2018/03/22 21:42:22 [INFO] Updating cluster [cluster-fhdj2]
2018/03/22 21:42:22 [INFO] cluster [cluster-fhdj2] provisioning: Building Kubernetes cluster
2018/03/22 21:42:22 [INFO] cluster [cluster-fhdj2] provisioning: [dialer] Setup tunnel for host [<IP_ADDRESS>]
2018/03/22 21:42:22 [INFO] cluster [cluster-fhdj2] provisioning: [state] Found local kube config file, trying to get state from cluster
2018/03/22 21:42:23 [INFO] Failed to update cluster [cluster-fhdj2] Operation cannot be fulfilled on clusters.management.cattle.io "cluster-fhdj2": the object has been modified; please apply your changes to the latest version and try again
2018/03/22 21:42:25 [INFO] cluster [cluster-fhdj2] provisioning: [state] Fetching cluster state from Kubernetes
2018/03/22 21:42:26 [INFO] cluster [cluster-fhdj2] provisioning: [state] Successfully Fetched cluster state to Kubernetes ConfigMap: cluster-state
2018/03/22 21:42:26 [INFO] cluster [cluster-fhdj2] provisioning: [certificates] Getting Cluster certificates from Kubernetes
2018/03/22 21:42:27 [INFO] Failed to update cluster [cluster-fhdj2] Operation cannot be fulfilled on clusters.management.cattle.io "cluster-fhdj2": the object has been modified; please apply your changes to the latest version and try again
2018/03/22 21:42:31 [INFO] cluster [cluster-fhdj2] provisioning: [certificates] Successfully fetched Cluster certificates from Kubernetes
2018/03/22 21:42:31 [INFO] cluster [cluster-fhdj2] provisioning: [network] Deploying port listener containers
2018/03/22 21:42:31 [INFO] cluster [cluster-fhdj2] provisioning: [network] Successfully pulled image [alpine:latest] on host [<IP_ADDRESS>]
2018/03/22 21:42:32 [INFO] cluster [cluster-fhdj2] provisioning: [network] Successfully started [rke-etcd-port-listener] container on host [<IP_ADDRESS>]
2018/03/22 21:42:32 [INFO] cluster [cluster-fhdj2] provisioning: [network] Successfully started [rke-cp-port-listener] container on host [<IP_ADDRESS>]
2018/03/22 21:42:32 [INFO] cluster [cluster-fhdj2] provisioning: [network] Successfully started [rke-worker-port-listener] container on host [<IP_ADDRESS>]
2018/03/22 21:42:32 [INFO] cluster [cluster-fhdj2] provisioning: [network] Port listener containers deployed successfully
2018/03/22 21:42:32 [INFO] cluster [cluster-fhdj2] provisioning: [network] Running control plane -> etcd port checks
E0322 21:42:32.769927       1 generic_controller.go:200] NodeController cluster-fhdj2/m-vjlxg [node-controller] failed with : Operation cannot be fulfilled on nodes.management.cattle.io "m-vjlxg": the object has been mo

Tested with preview builds.
When hosts in "DO" cluster go to "Unavailable" state , there are no news that get autocreated anymore.


WithEIRData on ODROID/Ubuntu

I am attempting to use the startAdvertisingWithEIRData function to append additional information to my advertisement or scan response packets. I am currently just trying to verify functionality by stuffing dummy data into the advertisementData:
Simplified from my code:
var advertisementData = new Buffer("02FFAA", "hex");
bleno.startAdvertisingWithEIRData(advertisementData);
I am attempting to read the packet via Android on the nRF Master Control Panel, but it seems as if I am not getting the data through correctly. On the raw packet viewer, there are still just the three types (0x01, 0x0A for txPwr, and 0x09 for the name). My data is not coming through.
The bleno-running device is an ODROID running Ubuntu, is there anything obvious that I am doing wrong? Thank you.

@sdebruin I would definitely recommend adding EIR flags type to the advertisement: 020106.
Maybe you could also try the isYocto workaround, by setting the isYocto var to true in lib/hci-socket/gap.js.


remove confirm about new version

sorry but it is really annoying

Perhaps there is another way you could notify the user that there is a new version? I am thinking perhaps some element on the YouTube page saying update and you click it to update the script. It will be the same link as the one on this GitHub Repo.

you should ask only once per time

Just set update check to false ...

The issue is we should not use a windows alert for update notifications.
The update notification feature is not annoying in itself, it's the opposite: People probably wants to be notified about new releases.
Still, using an alert dialog which is a blocking action is not recommended in interfaces. Better to build an HTML component to notify the user.
A basic one should do the job easily: https://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_modal_bottom
Maybe if I find some time I would create a PR to integrate a simple dialog.

@TheRealJoelmatic how do I set it up?

@BlueWorld1 He mentioned the solution to your problem. Read carefully.

@vagman What do you mean?

@BlueWorld1 He mentioned the solution to your problem. Read carefully.

@vagman What do you mean?

@BlueWorld1 He mentioned the solution to your problem. Read carefully.

@BlueWorld1 Open the script and find the variable near the top with the name somethong like check_updates. Set it to false.

A new update popup has been implemented now that is no longer intrusive.


added helm node selector

Signed-off-by: Rafael Porres Molina<EMAIL_ADDRESS>

Closing this as we have removed talks website


[Go SDK] Stream decode values in single iterations

Fixes #22900
This adds one time use stream decoders for use whenever we know reiterations won't occur (see issue).
Adds tests, and improves test coverage with a datasource tests for the various iterator handlers (on demand and fixed), unit tests for the on demand decode streams, a new test for pardo short reads, and a primitives test for GBK short reads.
Fixes previous benign issue where value iteration streams were not being closed after the processing DoFn finished, and test for same. Since we always fully read the byte stream for a value, we never ran into a short read problem before. Streaming decode short reads on the data side would cause problems that don't occur with short reads for Side Inputs.
There's a followup task for optimizing short reads when the coder being used is length prefixed, filed in #22901.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

Thanks for the review!


ibc: check for tendermint client update problems

See upstream issue here: https://github.com/cosmos/ibc-rs/issues/911 We should check whether our impls in the ibc component crate, and in the ibc-types crates, are affected by this problem.

@avahowell said this didn't seem to affect us, I'll wait for a comment describing why.

The equivalent logic for this exists in our ibc-types-lightclients-tendermint:
https://github.com/penumbra-zone/ibc-types/blob/ca4cc5e9e936f229b346d19e248ec7088aed3dba/crates/ibc-types-lightclients-tendermint/src/header.rs#L110
we don't have this incorrect check, so we're not affected by this specific issue. However there are a few validations being performed that aren't present there. I will make a PR to ibc-types to add those.


[Feature][Migration Required] Zotero Group Library Integration [OSF-2546]

Purpose
Currently, only personal Zotero libraries are supported in OSF, but a great feature of Zotero over Mendeley is that their group collaboration libraries are free. Add support for Zotero group libraries.
Changes

When creating  your API key for zotero,  default permissions changed so the key has read permissions to groups
Add library_id to node_settings model to store selected group library. Migration required.
Create zotero_node_settings.mako template to build custom UI for selecting groups first, and then folders.
New v1 route added: all group libraries that your API key has access to are returned as part of the request to api/v1/project/<pid>/zotero/groups/'.
UI loops through all groups the key has access to, as well as still providing your Personal Library as an option
Folder picker not shown until library(group) has been selected.
Selecting library and hitting 'Save' sends a PUT request to api/v1/project/{node_id}/zotero/settings/, same endpoint that adds folder.  Except here, library_id is added to node_settings and library key is added to user_settings oauth_grants
Once library selected, then you can load folders from that library.  This process is same as before.
Citations on node project page are loaded either from the group or the user's account, depending on which library was selected on the node settings page.
New log action: zotero_library_selected
New logic for whether or not zotero addon is completed - need both library_id and folder_id to both be specified before citations loaded.

Importing Library (options are personal library or your group libraries), then Folder

Importing numerous libraries (more than a couple).  Five libraries loaded by default, additional libraries loaded on scroll.  Max height of library picker kept constant.

New Log:

UI displays Library first, then folder

Library picker has same UI as folder picker for consistency

Side effects
Make sure I didn't break Mendeley. I shouldn't have, separated all the new parts.
Ticket
https://openscience.atlassian.net/browse/OSF-2546

ahh, good catch @Johnetordoff!

@pattisdr
I'm sorry I probably could have caught this before, but there's a problem logging this. When switching between libraries I get a message "Unable to to retrieve log details."

Otherwise the code content is really excellent and can't find a thing I'd find questionable. 🎉 👍

Hey @Johnetordoff, I think you need to recreate your assets.  The logs for libraries are new and you will get this message until those are recreated.

@pattisdr  Right you are it now works, passed ✅ !

Thanks for taking the time to review @Johnetordoff !

Merged into release/next-platform 🚢 🇮🇹


Tweet MicroProfile 4.1 release

For the purpose of reviewing the staged Twitter MicroProfile 4.1 release graphic and text, the link will be:
https://github.com/eclipse/microprofile/releases/tag/4.1
Twitter description for @rstjames
#MicroProfileAnnouncement: 💛@MicroProfileIO 4.1 Release is now available! This release contains an update to Health and relaxes compatibility constraints.
Check it out here: https://github.com/eclipse/microprofile/releases/tag/4.1
#OpenSourceFUN #ByCommunityForCommunity

@ederks85
Is there a plan to write a release blog for the release?
Usually all releases contain that link instead of Github.
Check the template under the wiki https://github.com/eclipse/microprofile-marketing/wiki/How-to-Process-MicroProfile-Releases
having only 1 spec changed, it shouldn't be complicated to do the write up using the template.

No we haven't talked about it, but sure, I can write up something. I will try to get it done this week.

Excellent!
Edwin ideally you & Emily check the current documentation & together by doing, we update it before adding it to the formal wiki.
the last time we update it was December 2020 before we actually use the formalized new process.
Actions lead to the current truth of the steps.
💛

I have updated the slide deck for MP 4.1 here

Hey you two,
The slide deck requires its own git ticket to trigger the update in 2 sections of the website:

main page
Resources page under Presentation

@Emily-Jiang while going through this, can you help improve the documentation in the wiki?
We want to make sure that the follow up is effortless and that anyone, a new trainee under an MP release, is ok to follow up marketing steps.
Cheers,

@ederks85 has this gone out already or do you still need something from me?

@rstjames it has not gone out yet. We are still working on the content in #547 and #548. After these have been closed, the tweet can go out.
@aeiras @Emily-Jiang please add your input if I'm missing anything


Glb File with draco is not loading

When I load .glb file I'm getting an error. File is draco encoded.
NullReferenceException: Object reference not set to an instance of an object
UnityGLTF.GLTFSceneImporter+d__67.MoveNext () (at Assets/UnityGLTF/Scripts/GLTFSceneImporter.cs:826)
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () (at :0)
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.GetResult () (at :0)
UnityGLTF.GLTFSceneImporter+d__54.MoveNext () (at Assets/UnityGLTF/Scripts/GLTFSceneImporter.cs:458)
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () (at :0)
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.GetResult () (at :0)
UnityGLTF.GLTFSceneImporter+d__53.MoveNext () (at Assets/UnityGLTF/Scripts/GLTFSceneImporter.cs:413)
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () (at :0)
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.GetResult () (at :0)
UnityGLTF.GLTFSceneImporter+d__53.MoveNext () (at Assets/UnityGLTF/Scripts/GLTFSceneImporter.cs:421)
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () (at :0)
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.GetResult () (at :0)
UnityGLTF.GLTFSceneImporter+d__76.MoveNext () (at Assets/UnityGLTF/Scripts/GLTFSceneImporter.cs:1282)
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () (at :0)
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter`1[TResult].GetResult () (at :0)
UnityGLTF.GLTFSceneImporter+d__75.MoveNext () (at Assets/UnityGLTF/Scripts/GLTFSceneImporter.cs:1235)
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () (at :0)
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.GetResult () (at :0)
UnityGLTF.GLTFSceneImporter+<_LoadScene>d__59.MoveNext () (at Assets/UnityGLTF/Scripts/GLTFSceneImporter.cs:591)
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () (at :0)
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.GetResult () (at :0)
UnityGLTF.GLTFSceneImporter+d__47.MoveNext () (at Assets/UnityGLTF/Scripts/GLTFSceneImporter.cs:305)
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () (at :0)
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.GetResult () (at :0)
UnityGLTF.GLTFComponent+d__24.MoveNext () (at Assets/UnityGLTF/Scripts/GLTFComponent.cs:137)
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () (at :0)
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) (at :0)
System.Runtime.CompilerServices.TaskAwaiter.GetResult () (at :0)
UnityGLTF.GLTFComponent+d__23.MoveNext () (at Assets/UnityGLTF/Scripts/GLTFComponent.cs:50)
--- End of stack trace from previous location where exception was thrown ---
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () (at :0)
System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.b__6_0 (System.Object state) (at :0)
UnityEngine.UnitySynchronizationContext+WorkRequest.Invoke () (at C:/buildslave/unity/build/Runtime/Export/UnitySynchronizationContext.cs:115)
UnityEngine.UnitySynchronizationContext:ExecuteTasks()

UnityGLTF does not support draco at the moment. #174

Closing due to dupe. If you are interested in Draco support we would love to take it as a contribution!

when i imported the GLB model using the draco & gltFast unity package. i got the glb file. i can use it in the scene but i couldnt edit the materials. kindly someone help me.


[BUG]: Spelling issue within Innovation Backlog App

Describe the bug
Spelling issue within Innovation Backlog App
Component (please tell us which flow or app you are experiencing issues with):

Solution Innovation Backlog
Version 1.20
Innovation Backlog

To Reproduce
Steps to reproduce the behavior:

Log into Innovation Backlog app
Create an item
Go to Workflow stage
Select Do you have a workflow process map? = No
Spelling error "interst"

Expected behavior
Should be interest.
Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
Add any other context about the problem here.

Hello I fixed this in the local copy but will not re-ship just for this, so not holding this issue open.
Thank you for helping make CoE great.

Actually just caught a bug in the tool that the "New Tool" page had its height off. Fixed that too so will go ahead and hold open to remember to reship, with your spelling fixed too.

Hello. We have just released the May edition of the toolkit and it contains this fix.
Please be sure to follow the instructions at installing updates in order to remove any unmanaged layers you have in place, or you will not receive the update.
Thank you for helping make CoE great!


actix-web with ResourceFiles

I am trying utoipa_actix_web with ResourceFiles, and to struggle a bit. Here is the snippet:
use actix_web_static_files::resource_files::ResourceFiles;

pub fn configure(config: &mut utoipa_actix_web::service_config::ServiceConfig, ui: &UiResources) {
    config.service(ResourceFiles::new("/", ui.resources()).resolve_not_found_to(""));
}

I can't add ResourceFiles with service, because it doesn't implement OpenApiFactory. Makes sense. But how do I work around this?
It's ok to just leave this out of the OpenAPI spec.

I came up with this:

pub fn configure(config: &mut utoipa_actix_web::service_config::ServiceConfig, ui: &UiResources) {
    config.service(NoSpecWrapper(
        ResourceFiles::new("/", ui.resources()).resolve_not_found_to(""),
    ));
}

struct NoSpecWrapper<T: HttpServiceFactory>(pub T);

impl<T: HttpServiceFactory> HttpServiceFactory for NoSpecWrapper<T> {
    fn register(self, config: &mut AppService) {
        self.0.register(config);
    }
}
impl<T: HttpServiceFactory> OpenApiFactory for NoSpecWrapper<T> {
    fn paths(&self) -> utoipa::openapi::path::Paths {
        Default::default()
    }

    fn schemas(
        &self,
        _schemas: &mut Vec<(
            String,
            utoipa::openapi::RefOr<utoipa::openapi::schema::Schema>,
        )>,
    ) {
        Default::default()
    }
}

Not sure that works, need to test. But I think this should be somehow part of the crate.

Yeah, I have totally ignored that it would be useful for ServiceConfig to also have direct access to actix_web::web::ServiceConfig :facepalm:
I shortly fix this with PR and make a release for it.

This PR #1174 Adds similar map method for ServiceConfig that is present in Scope and UtoipaApp which allows direct access to underlying actix_web type which in this case is actix_web::web::ServiceConfig.


Preserve international characters on import/export

Fixes #1352. Preserve non-ASCII characters in project names on
project creation and filenames on export.

Note that there are a couple of additional places where the \W character class (equivalent to [^A-Za-z0-9]) is used, which will drop all non-ASCII characters. They are in the schema alignment and the SQL exporter, but I don't know if they're actually needed or not.

Closing in favor of #2713 which combines this and #2712, as well as dealing with one piece of the SQL exporter issues mentioned above. I've created #2716 to track the rest of the SQL exporter cleanup.


First of all, this fix has been done from debugging BC7 HPC codepath, where tp->run has already initialized with false value.
In my case I tested the encoding on a FX-8320 and i7-8sthing (W10: 18363) both with 8 threads, where in both cases first 8 blocks on encoding was likely (non deterministic) garbage. Some of the first 8 blocks was fine, but most of them not (garbage).
So I will begin with my explanation of the bug based on the old code.
Let's say the just created thread (around at line 100 std::thread is called) is created and "runs" first to line where tp->run = false; executes. Everything is fine :D.
Now let's say it doesn't "runs" first but command m_EncodeParameterStorage[threadIndex].run = true; (around at line 179) runs first, Then encoding has a "green" light but if tp->run = false; runs on the newly created threads we have a f up. No encoding happens at that block.
So what does this fix does? Just avoids the chance of "green" light to turn back to "red" if initialzing code of the new thread runs slower than the main thread code.
Sorry for my lossy explanation but trying to pass how I saw the code and fixed it.

@NPCompress I do not want to be annoying but I would like to let you know that I can help with understanding the point of this pull request. Indeed I am childish but still these change fixes a bug of CMP_Framework.

@thesmallcreeper , Thank you for improving the CMP_Framework code base. I  will be reviewing the change and will commit when done.


chore(client): use Spacer component from @freecodecamp/ui

Checklist:

[x] I have read and followed the contribution guidelines.
[x] I have read and followed the how to open a pull request guide.
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes #56744

the Linter is failing on 7 different files, please fix that.

I added a commit that solved the lint errors, now there are the typescript errors to solve


Monster: Dark Tide Knight - Uncanny Dodge Automation

When munching https://www.dndbeyond.com/monsters/17446-dark-tide-knight the Uncanny Dodge reaction lacks automation effects that exist when munching a player character (rogue) with the same ability.
This is the munched monster version:

This is the munched character version:

If I drag the character version to the monster then Midi-QOL properly halves damage if I use the reaction when prompted for the monster.

Thanks. In next release.


Change how we do windows standalone editors and so on

Instead of having a million main methods we should pass both the platform and the type like this as java options:
-Dplatform=jar -DstartType=editor

Done


fix: do no raise exception for percentage formatter

A percentage might be higher than 100% when it expresses a ratio for instance.
We should not control this behavior at the formatter level.

The issue happened when the two datasets are not the same size. In particular, when the first one is larger.
The root of the problem is that the frequency table then uses the number of rows of the first report for the second report which is correct.
All the other information are properly displayed and uses the size of their respective dataset:


allow_user_specified_id has no effect

I enabled the allow_user_specified_id checkbox in the client settings of the UI. Then I attempted to insert a document like this in the Editor tab of the UI:
insert default::Test {
  name := "b",
  id := <uuid>"45f60fbe-c92d-11ee-8238-ebb2d9719a71",
}

But I still get this error:

QueryError: cannot assign to property 'id'
Hint: consider enabling the "allow_user_specified_id" configuration parameter to allow setting custom object ids

Actually, I was just confused by the UI. I only enabled the checkbox to pass the setting, but didn't switch it from false to true.


Reject expiry month 0

We have an issue where people can submit invalid expiration dates i.e 0/17
Currently it would be transformed to 12/16 and still be a valid expiration date.

Check month for value other than 0.
Adds a second invalid month test.

Looks great, thanks!


Removes AFNetworking/UIKit subspec

The type of this PR is: Upkeep

This PR resolves MX-286
Description

This PR removes the AFNetworking/UIKit dependency (by specifying all the other AFNetworking/* subspecs explicitly). This removes the code in AFNetworking that referenced UIWebView, without having to go through an arduous AFNetworking upgrade. We weren't using the UIWebView code anyway – I'm grateful to the AFNetworking maintainers that they were so forward-thinking in dividing up the dependency into thoughtful subspecs. I also had to update all our #import statements.
I got the idea here: https://github.com/AFNetworking/AFNetworking/issues/4428#issuecomment-527956472 Really great workaround, especially considering how (longterm) we want to move away from AFNetworking and towards all network requests being done from React Native.
One of our dependencies, AFOAuth1Client, also needed a change to specify only the subspecs it needed to, which I did in this fork: https://github.com/artsy/AFOAuth1Client/commit/599ac2bf177d390ec0850ed0ba79c91a2707777c

The only code left that references UIWebView is either covered by #3748 or by upgrading our Facebook SDK version.
PR Checklist (tick all before merging)

[x] I have included screenshots or videos to illustrate my changes, or I have not changed anything that impacts the UI.
[x] I have added tests for my changes, or my changes don't require testing, or I have included a link to a separate Jira ticket covering the tests.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added an app state migration, or my changes do not require one. (What are migrations?)

Very nice 🎉! thanks for taking over this 🙏


Commit has misleading error when creds are required but not supplied

Guohua Ouyang reports the below.  He used a private repository and neglected to include the creds command and appropriate un/pwd.  He received a 401 error and might better have been specified as "authentication failed" or some such.
[root@fedora tasks]# buildah commit nginx docker://docker.io/gouyang/nginx
Getting image source signatures
Skipping fetch of repeat blob sha256:ee1a8002360e897670d7edcc6bfde440f064aa014793e7e7a5dc049a01459299
Skipping fetch of repeat blob sha256:12c9ee9bfbc78f3c69092d8aed395fc85db739c90fb8f128c7896c1a03102fdb
Skipping fetch of repeat blob sha256:8481764ad3d61d907eceeaad333bb20b0da6c28c4420e6cfc712aee24f82b5ae
Copying blob sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1
0 B / 32 B [------------------------------------------------------------------]
ERRO[0023] error committing container "nginx" to "docker://docker.io/gouyang/nginx": error copying layers and metadata: Error writing blob: Error initiating layer upload to /v2/gouyang/nginx/blobs/uploads/, status 401
[root@fedora tasks]# buildah commit --creds gouyang:xxxxxx nginx docker://docker.io/gouyang/nginx
Getting image source signatures
Skipping fetch of repeat blob sha256:ee1a8002360e897670d7edcc6bfde440f064aa014793e7e7a5dc049a01459299
Skipping fetch of repeat blob sha256:12c9ee9bfbc78f3c69092d8aed395fc85db739c90fb8f128c7896c1a03102fdb
Skipping fetch of repeat blob sha256:8481764ad3d61d907eceeaad333bb20b0da6c28c4420e6cfc712aee24f82b5ae
Copying blob sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1
32 B / 32 B [=================================================================]
Copying config sha256:c47d98715367c9037b1aedd237e2ffe4c3b909864761c002951a16aece749f89
4.87 KiB / 4.87 KiB [=========================================================]
Writing manifest to image destination
Storing signatures

calling #dibs

Its yours.

Tried to assign this to ripculd0, but he's not showing on the list.  Did my whitelist not take this morning or do we need to do something else to get him on the list of potential assignees?

Did you do that on this Repo?

I did the whitelist on his true/false combined commit earlier this morn.

Should we merge https://github.com/containers/image/pull/390?
If not I can solve it in a different way.
@TomSweeneyRedHat @rhatdan what do you say?


Crash when InputDevice of SpeechRecognition is set to anything other than Default

The device ID is taken from the Get Available Audio Input Devices function; Is Audio Input Device ID Valid returns True, so the ID is correct.
Callstack
Unhandled exception at 0x00007FFCD2C253AC in UnrealEditor.exe: Microsoft C++ exception: std::runtime_error at memory location 0x000000BCAD62F930.

 	KernelBase.dll!00007ffcd2c253ac()	Unknown
 	vcruntime140.dll!00007ffcbfab6ba7()	Unknown
>	UnrealEditor-AzSpeech.dll!__azac_handle_native_ex(unsigned __int64 hr, bool throwException) Line 709	C++
 	[Inline Frame] UnrealEditor-AzSpeech.dll!__azac_rethrow(unsigned __int64) Line 724	C++
 	UnrealEditor-AzSpeech.dll!Microsoft::CognitiveServices::Speech::SpeechRecognizer::FromConfig(std::shared_ptr<Microsoft::CognitiveServices::Speech::SpeechConfig> speechconfig, std::shared_ptr<Microsoft::CognitiveServices::Speech::Audio::AudioConfig> audioInput) Line 100	C++
 	UnrealEditor-AzSpeech.dll!FAzSpeechRecognitionRunnableBase::InitializeAzureObject() Line 223	C++
 	UnrealEditor-AzSpeech.dll!FAzSpeechRunnableBase::Run() Line 86	C++
 	[Inline Frame] UnrealEditor-AzSpeech.dll!FAzSpeechRecognitionRunnableBase::Run() Line 27	C++
 	UnrealEditor-AzSpeech.dll!FAzSpeechRecognitionRunnable::Run() Line 21	C++
 	UnrealEditor-Core.dll!FRunnableThreadWin::Run() Line 149	C++
 	UnrealEditor-Core.dll!FRunnableThreadWin::GuardedRun() Line 71	C++
 	kernel32.dll!00007ffcd4ba257d()	Unknown
 	ntdll.dll!00007ffcd55caa48()	Unknown

Both Speech to Text with Default Options and Speech to Text with Custom Options crash.


Unable to use app.helpers in views

I am trying to install dialect module in Expressling:
http://happynerds.tumblr.com/post/5161855930/dealing-with-translations-in-nodejs
After defining helpers in either server.js or settings.js they seem not to get parsed/executed in the views using Expressling.
For example (server.js or settings.js);
app.helpers({
foo: function(str) { console.log(str) }
});
And in my view I would do;
foo('test')
This doesn't seem to have any effect at all. Any ideas if it's Expressling or my version of node/express.
Additionally, any comments on how to separate configuration and connection of dialect within Expressling would be appreciated. Thanks

Taking a look into this now.

What version of node are you using by the way?

Thanks.
I'm using v0.6.1.
Do you have plans to actively improve Expressling?

I'm pushing an update right now.

Are you in IRC?  If so, join #expressling

Just released update for node >= 0.6.3, check it out and update your expressling with npm.

Please take a look into https://www.w3.org/Bugs/Public/show_bug.cgi?id=12417 when you have a minute.  This provides a lot of information on the HTML5 attr for translate.  I think the easiest solution for this is to do client-side translation with a JS library.

I am looking for a memory caching solution. No luck with dialect?
On Dec 2, 2011 7:37 PM, "Nick Baugh" <
<EMAIL_ADDRESS>wrote:

Please take a look into <
https://www.w3.org/Bugs/Public/show_bug.cgi?id=12417> when you have a
minute.  This provides a lot of information on the HTML5 attr for
translate.  I think the easiest solution for this is to do client-side
translation with a JS library.

Reply to this email directly or view it on GitHub:
https://github.com/niftylettuce/expressling/issues/2#issuecomment-2986914

Are you still looking to use dialect?


Remove need for fonts in Pubspec

The previous way was slightly strange.
You can specify the package in the text style, which removes the need for the asset declaration for users.

Codecov Report

Merging #6 into master will increase coverage by 0.55%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master       #6      +/-   ##
==========================================
+ Coverage   74.62%   75.17%   +0.55%
==========================================
  Files          99       99
  Lines        4689     4689
==========================================
+ Hits         3499     3525      +26
+ Misses       1190     1164      -26

Impacted Files
Coverage Δ

lib/src/render/symbols/make_atom.dart
71.05% <100.00%> (ø)

lib/src/render/svg/stretchy.dart
97.67% <0.00%> (+4.65%)
:arrow_up:

lib/src/render/layout/line.dart
82.68% <0.00%> (+10.38%)
:arrow_up:

Continue to review full report at Codecov.

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

@znjameswu Why is CI failing?

CI failure is probably because the font loader settings are not changed during the testing. I'll be investigating.
Also thank you for this nice technique. I did not know I can specify font like this.


Pipe not applied on value

I am using ng-template and binding the numeric value
<ngx-datatable-column prop="balance" name="Balance" [width]="50" >      <ng-template let-value="value" ngx-datatable-cell-ng-template>            {{value | currencyformat}}      </ng-template> </ngx-datatable-column>
The pipe transform function never gets called. I have also tried by setting pipe attribute:
<ng-template let-value="value" ngx-datatable-cell-ng-template pipe="currencyformat">
But I am getting error i.e. userPipe.transform is not a function.
Please let me know what I am missing here.

Closing this because issue is logged already #844


[mempool] use vm_validator scoring result as sorting value in mempool

@bors-libra r=tzakian

:pushpin: Commit f51b144 has been approved by tzakian

:hourglass: Testing commit f51b144eac16e3817843e8c88dcd4ef29ec323fb with merge 6f81d1b31d409447a37fffe8c754510ae9de688b...

:sunny: Test successful - checks-actions_land_blocking_test, checks-circle_commit_workflow
Approved by: tzakian
Pushing 6f81d1b31d409447a37fffe8c754510ae9de688b to master...


[BugBash] Fix messaging in link MS account email notification

Scenario 2, per @skofman1 (Issue 3)
Regarding e-mail text: [NuGet Gallery] Microsoft account...

Not a high priority and an existing issue. Moving to backlog to be addressed later.


Replace toggle tool with layer toggler

This PR looks to resolve #175 by replacing the class layer toggle tool with the layer toggler in stages 4 and 5. At the moment this only contains functionality updates - I haven't changed the guideline text. I'm also not sure exactly how we want the layout with this to be in stage 5 - once we decide that I'll change appropriately.

I'll look this over and identify what guidelines need to be changed

I am taking over this check from @johnarban


Clean up PCM example - Unique Chunks

By "clean up" I mean removing as much duplication as we can, creating new combinators, etc. It will be an ongoing task over the summer, but we should get the first pass done soon.

I think you mean PCM?

Yup. My bad.

Specific goal of this pass: remove all duplication of concepts so that each comes from a single unique source.

I can do a general cleanup of the code but what concept duplication were you referring to?

It may not apply to PCM actually, because of how small that example happens to be, but if you could ensure that the chunks used throughout aren't duplicates of other chunks (i.e. they represent the same concept, but have slightly different spelling/definitions OR there's one version in your example-specific concepts and another version (possibly identical) in Data.Drasil somewhere).
Basically just the clean up we've been discussing: making sure there's only one chunk per concept so we can track everything down.

I think PCM is fine and there is no direct duplication of terms with Data.Drasil that I can see.  If any terms seem too general and need to be moved or rearranged to fit some standard, just let me know.


ref #30, customization for readOnly and menubar buttons

made changes for #30

@ShawTim nice! thanks a lot! 👍


Implement save upload, extend __request method to allow for multiparts

Should probably be tested a bit further before merging.
Note that I exchanged
auth=self.auth if self.auth else None
to
auth=self.auth
as that should also work (?)
If there is anything to change, feel free to keep me updated

Perfect, thanks very much - I'll merge this and get the downloading sorted too

Perfect, thanks very much - I'll merge this and get the downloading sorted too

Awesome, thanks for the effort!
I'm excited for using this library


Handle failure to properly resolve type reference directives

Adding small null check.
Customer reported an issue whereby file was undefined or null in a CI scenario but not in a local build.
The solution for the customer was to set preserveSymlinks: true, but this was not clear from the error message.
This change intends to make the error clearer. Suggestions regarding whether this is the proper way to report this error are welcome.

@andy-ms  as far as I can tell, realpath cannot return undefined. So what seems to be happening is that when the symlink is resolved, the file it points to is not present in Program.filesByName (forgive the abuse of notation here), and therefore host.getSourceFile returns undefined. I've changed the type here to reflect this possibility of returning undefined. What do you think is the best way to handle the scenario?

@uniqueiniquity is this good to go?


predict scripts and pretrained model

Hi, could you release predict scripts and the pre-trained model?

Sure, i will put one scrpit for image captioning in this repo.

I updated the model and the inference script was added(only greedy sampling ).

Hi,could you please tell me where  I can  find the dataset?

Hi,could you please tell me where I can find the dataset?
you can train the model with any datasets available.  And you may need to modify the dataloader to fit the form of your dataset.
Here I give you some optional datasets:

small scale: MSCOCO, flickr30k  (Chinese and English )
large-scale:  CC3M  CC12M (English),   TaiSu (Chinese ) https://github.com/ksOAn6g5/TaiSu.   Wukong (Chinese)

Thank you very much!
1875202618
@.***

------------------ 原始邮件 ------------------
发件人:                                                                                "yulong-XJTU/SimVLM"                                                                                @.>;
发送时间: 2022年10月5日(星期三) 晚上9:59
@.>;
<EMAIL_ADDRESS>主题: Re: [yulong-XJTU/SimVLM] predict scripts and pretrained model (#1)
Hi,could you please tell me where I can find the dataset?
you can train the model with any datasets available.  And you may need to modify the dataloader to fit the form of your dataset.
Here I give you some optional datasets:
small scale: MSCOCO, flickr30k  (Chinese and English )
large-scale:  CC3M  CC12M (English),   TaiSu (Chinese ) https://github.com/ksOAn6g5/TaiSu.   Wukong (Chinese)
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: @.***>


Performance/HashEachMethods is being triggered on things that are not Hashes

Specifically an instance of Config::Options, which has keys but not each_keys
https://github.com/railsconfig/config/blob/master/lib/config/options.rb
in rubocop 0.50.0

It is hard (impossible) for Rubocop to know the class of an object by which methods are called on it. It assumes objects that respond to keys also respond to each_key as Hash does. Perhaps Config::Options should implement each_key?

As @mikegee pointed out, we can unfortunately not know what an identifier will point to at runtime.

Perhaps Config::Options should implement each_key?

It should. In well behaved, hash like objects, #keys is usually implemented in terms of #each_key.
In the case of Config::Options it even delegates to an underlying hash. 🙂


Upgrade to 3.1 breaks our foreach loops

Upgrading from 3.0 to 3.1 breaks our implementation. All results are returned double (except result 0, the first) when foreaching a Laudis\Neo4j\Databags\SummarizedResult.
If instead of directly foreaching we use the ->toArray() on the object, the number of rows is back to normal.
Expected behavior
Foreach of the object results in the same result as toArray() and not double them.
Desktop (please complete the following information):

3.1
4.4 latest
PHP version: 8.3 latest

We also receive a PHP warning from a linked class:
Implicit conversion from float 9.223372036854776E+18 to int loses precision in /vendor/laudis/neo4j-php-client/src/Types/AbstractCypherSequence.php on line 529

Hello @tim-hanssen. Could you provide a code sample I could use to reproduce and investigate this issue?

We just released 3.1.1. This should address the "implicit conversion" warning you get. Let us know if this version fixes your issue as we weren't able to reproduce it

Hey @exaby73 so the warning is indeed fixed in 3.1.1, but the double loop is still the same.
It happens after we retrieve the object from a cache layer in a clean Laravel install. I guess it's serializing the class so it can be stored into redis.
        $data = Cache::remember('save-me', 604800, function () {

                     // THIS RETURNS a Laudis\Neo4j\Databags\SummarizedResult class.
            });

I found the issue to be serialization/deserialization of the CypherList class causing results to be double. I'm working on a fix and will update soon

@tim-hanssen 3.1.2 should be the fix you're looking for :) Thanks for bringing this up so we could catch it early


Fix gray alpha png

This is mostly what is described by @rh101 in #2230 with the addition of the following:

A fix small typo in the CMakeLists.txt for the detection of GTK3.
A change in convertRG8ToRGBA8 to copy the pixels as RRRA instead of RARA (as it was introduced in #1839).

I could not reproduce the output shown by @rh101 in its comment without the point above. From my understanding the PNG is loaded into an Image with the correct pixel format (RG8), then this image is passed to a Texture2D alongside a render pixel format set to RGBA. The Texture2D subsequently calls updatWithMipmaps which may convert the pixels into the render format. By the time the Texture2D reaches the Sprite the pixel format of the texture is RGBA.
Tested with cpp-tests' Texture2D/5:PNG Test (Linux) and in my app (Linux and Android).
I hereby invoke @smilediver to double check the loading of two-channels images, and @halx99 for the convertRG8ToRGBA8 part :)

Is there a tester on cpp-tests?

I could not reproduce the output shown by @rh101 in its comment without the point above. From my understanding the PNG is loaded into an Image with the correct pixel format (RG8), then this image is passed to a Texture2D alongside a render pixel format set to RGBA. The Texture2D subsequently calls updatWithMipmaps which may convert the pixels into the render format. By the time the Texture2D reaches the Sprite the pixel format of the texture is RGBA.

I don't quite understand how you are not able to reproduce the result, because no other changes were done when I did the test, and definitely no change to convertRG8ToRGBA8.   Are you referring to a different test altogether, or some code that you are using that is not covered by a test?  If so, then you need to provide code to show how you're using it.
Also, please always add screenshots of actual and expected output.
Aside from that, while I am not sure the existing code in convertRG8ToRGBA8 is based on some convention, is it still correct, because how the shader interprets the data is what is important:
static void convertRG8ToRGBA8(const unsigned char* data, size_t dataLen, unsigned char* outData)
{
    for (ssize_t i = 0, l = dataLen - 1; i < l; i += 2)
    {
        *outData++ = data[i];      // R
        *outData++ = data[i + 1];      // G
        *outData++ = data[i];      // B
        *outData++ = data[i + 1];  // A
    }
}

The only way you would still be seeing a problem is if you forgot to pass the correct format of PixelFormat::RG8 to the Sprite::create() call, which seems to be case since I can't see it in your current changes in this PR:
Sprite::create("Images/test_image_ai88.png", PixelFormat::RG8);
Without that, then it would still be treated as RGBA, in which case the modification you made to convertRG8ToRGBA8 would result in "fixing" the issue, but it's not actually a fix:
static void convertRG8ToRGBA8(const unsigned char* data, size_t dataLen, unsigned char* outData)
{
    for (ssize_t i = 0, l = dataLen - 1; i < l; i += 2)
    {
        *outData++ = data[i];      // R
        *outData++ = data[i];      // G
        *outData++ = data[i];      // B
        *outData++ = data[i + 1];  // A
    }
}

All this does is allow the existing positionTextureColor fragment shader to show the correct gray-scale image:
void main()
{
    FragColor = v_color * texture(u_tex0, v_texCoord);
}

So, please double-check your code.  Re-test after reverting the change to convertRG8ToRGBA8, making sure that the correct format of PixelFormat::RG8 is being passed to the Sprite::Create method.
I think that the change to convertRG8ToRGBA8 is unnecessary.

I've tracked the initialization of the Sprite in 5a192ef, with the pixel format passed to Sprite::create:

we start at Sprite::create(…/test_image_ai88.png, RG8)
arguments are forwarded to Sprite::initWithFile
this function calls TextureCache::addImage(…/test_image_ai88.png, RG8)
a new texture is created, we call Image::initWithImageFile(…/test_image_ai88.png)
this forwards to Image::initWithImageData, then Image::initWithPngData
at the end of initWithPngData the image's pixel format is RG8, as expected.
back to TextureCache, we call Texture2D::initWithImage(image, RG8 /* as passed to addImage() */)
this forwards to Texture2D::updateWithImage. Here the requested pixel format is changed to RGBA.
then we go to Texture2D::updateWithData which forwards to Texture2D::updateWithMipmaps
then we call PixelFormatUtils::convertDataToFormat which converts the pixels to RGBA (actually RGRG).
back to Sprite, we call Sprite::setTexture, and the texture's pixel format is indeed RGBA.

Since the format change in Texture2D::updateWithData is conditioned by AX_USE_METAL || !AX_GLES_PROFILE I wonder if you (@rh101) end up outside this condition.
I don't see the point of the conversion from RG8 to RGRG because the pixel format, in the end, still claims it's RGBA! It means that no code can rely on the actual data when pixelFormat == RGBA because it's either RGRG or RGBA. Can't we just keep the RG8 pixel format for the non-GLES2 case?

Since the format change in Texture2D::updateWithData is conditioned by AX_USE_METAL || !AX_GLES_PROFILE I wonder if you (@rh101) end up outside this condition.
I don't see the point of the conversion from RG8 to RGRG because the pixel format, in the end, still claims it's RGBA! It means that no code can rely on the actual data when pixelFormat == RGBA because it's either RGRG or RGBA. Can't we just keep the RG8 pixel format for the non-GLES2 case?

Sorry, I'm not clear on the purpose of your post, or what it is you're actually asking.  I am also not overly familiar with that section of code, or why the conversions happen, so perhaps the person who can answer it for you is @halx99.

I think it's a bug if you request RG texture and actual image is RG and it still gets converted to RGBA (loading RGRG). But as I've said, it might have been done for backwards compatibility. But maybe it's ok to break it in this case, since it behaves like a bug, because if you request RG and supply RG, then you should get RG.
Now, if you request RGBA and the image is RG, then it's another question if it should be loaded as RGRG or RRRG. Maybe it could be a separate feature, where you could request some channel swizzles before loading data into the requested format.

Hello, just a quick note about the problems we have here. I tried to remove the RG to RGBA conversion but I still have cases where a conversion happens. Digging a bit, it seems that most of the API does not want to use the pixel format of the image resources :(

TextureCache uses Texture2D::getDefaultAlphaPixelFormat() by default, which is RGBA8. Some functions accept an explicit pixel format, some don't (e.g. addImageAsync).
Texture2D has obviously the same default to RGBA8
Sprite uses the same default.

This does not follow the principle that the textures are just x-channels buffers and that the semantics is given by the shader.
I think the member Texture2D::g_defaultAlphaPixelFormat should not exist. Texture2D should use the pixel format of the source image as-is, and Sprite should pick a shader that works well with the texture's pixel format by default.
Now this is a lot of work for the few hours I can give to Axmol, and I'm very afraid of the side effects in many places I have no knowledge of. I doubt I would be very helpful here.

I think the member Texture2D::g_defaultAlphaPixelFormat should not exist.

Agreed, it has been a big source of issues and frustration for us. Instead of this, there should be a way to convert the texture being loaded either by asking for another pixel format, or specifying some kind of channel swizzles. But this should be done as a parameter for loading functions, not a global variable.

Now this is a lot of work for the few hours I can give to Axmol, and I'm very afraid of the side effects in many places I have no knowledge of. I doubt I would be very helpful here.

Yeah, from your summary of the issues it seems there's a need to rethink and refactor how textures are loaded (and reloaded on GL context loss). But that would touch a lot of places and would include a lot of breaking changes. Not sure what is the best way forward in this case and if such changes would be welcome.

Perhaps the larger refactoring should be part of Axmol v3, since breaking changes would be expected in that major update.


Not getting any output on the screen

First of, thanks!!
Just the module Ive been looking for..
However I can't get any output from the module.
I got the API and according to the log I get data back. But nothing is displayed..
Tried both with filter on teamID and without.
See below for config and logs. Please advice.
Config:
{
module: "MMM-SHL",
position: "middle.center",
        config: {
            clientId: "CLIENT_ID",
            clientSecret: "CLIENT_SECRET"
          //  teams: ['FBK', 'FHC', 'DIF']
        }
 },

1|MagicMirror  | 2:55:38 PM MMM-SHL: Number of games: 364
1|MagicMirror  | 2:55:38 PM MMM-SHL: Getting standings
1|MagicMirror  | 2:55:39 PM MMM-SHL: Standings retrived: []
1|MagicMirror  | 2:55:39 PM MMM-SHL: Number of teams: 0
1|MagicMirror  | 2:55:39 PM MMM-SHL: []
1|MagicMirror  | 2:55:39 PM MMM-SHL: []
1|MagicMirror  | 2:55:39 PM MMM-SHL: Sceduled refresh at: Sat Sep 14 2019 18:00:00 GMT+0200 (CEST)
1|MagicMirror  | Use existing news fetcher for url: http://www.svd.se/?service=rss
1|MagicMirror  | 2:55:49 PM MMM-SHL: socketNotificationReceived
1|MagicMirror  | 2:55:49 PM MMM-SHL: CONFIG event received
1|MagicMirror  | 2:55:49 PM MMM-SHL: Getting standings
1|MagicMirror  | [2:55:49 PM] - MMM-Namnsdag : Fetching todays names
1|MagicMirror  | 2:55:50 PM MMM-SHL: Games retrived: [{"away_team_code":"FBK","away_team_result":0,"game_center_active":false,"game_id":10730,"game_type":"Regular season game","game_uuid":"qWX-3455RNQ0J","highlights_coverage_enabled":false,"home_team_code":"VLH","home_team_result":0,"live_coverage_enabled":false,"overtime":false,"penalty_shots":false,"played":false,"season":"2019","series":"SHL","start_date_time":"2020-03-12T19:00:00+0100","ticket_url":"http://vlh.ebiljett.nu/Home/tickets/422/False?style=shl","tv_channels":[],"venue":"Vida Arena"},{"away_team_code":"MIF","away_team_result":0,"game_center_ac
...
...
...
...
me/tickets/367/False?style=shl","tv_channels":[],"venue":"Tegera Arena"},{"away_team_code":"IKO","away_team_result":0,"game_center_active":true,"game_center_url_desktop":"http://shl.se/gamecenter/qWX-342M11rRhU/events/","game_center_url_mobile":"http://shl.se/gamecenter/qWX-342M11rRhU/events/","game_id":10372,"game_type":"Regular season game","game_uuid":"qWX-342M11rRhU","highlights_coverage_enabled":false,"home_team_code":"SAIK","home_team_result":0,"live_coverage_enabled":false,"overtime":false,"penalty_shots":false,"played":false,"season":"2019","series":"SHL","start_date_time":"2019-09-14T15:15:00+0200","ticket_url":"http://saik.ebiljett.nu/Home/tickets/438/False?style=shl","tv_channels":[],"venue":"Skellefteå Kraft Arena"},{"away_team_code":"BIF","away_team_result":0,"game_center_active":true,"game_center_url_desktop":"http://shl.se/gamecenter/qWX-342LGssIY/events/","game_center_url_mobile":"http://shl.se/gamecenter/qWX-342LGssIY/events/","game_id":10369,"game_type":"Regular season game","game_uuid":"qWX-342LGssIY","highlights_coverage_enabled":false,"home_team_code":"FHC","home_team_result":0,"live_coverage_enabled":false,"overtime":false,"penalty_shots":false,"played":false,"season":"2019","series":"SHL","start_date_time":"2019-09-14T15:15:00+0200","ticket_url":"https://www.ticketmaster.se/artist/frolunda-indians-biljetter/94573","tv_channels":[],"venue":"Scandinavium"}]
1|MagicMirror  | 2:55:50 PM MMM-SHL: Number of games: 364
1|MagicMirror  | 2:55:50 PM MMM-SHL: Getting standings
1|MagicMirror  | 2:55:51 PM MMM-SHL: Standings retrived: []
1|MagicMirror  | 2:55:51 PM MMM-SHL: Number of teams: 0
1|MagicMirror  | 2:55:51 PM MMM-SHL: []
1|MagicMirror  | 2:55:51 PM MMM-SHL: []
1|MagicMirror  | 2:55:51 PM MMM-SHL: Sceduled refresh at: Sat Sep 14 2019 18:00:00 GMT+0200 (CEST)

I'm having similar issue. I didn't get any info with "teams:" config commented out. I was assuming that it was because the series hadn't started. But same today.
But for me it works with the "teams:" filtering.
Added all 12 teams from last year and I get an almost complete table. But I can't get Leksand and Oskarshamn to show up in table (tried filter 'LIF' and 'IKO' by chance).

After some tweaking I got it working. You need to modify node_helper.js file and replace the cases for Mora and Timrå with Leksand and Oskarshamn. Tried to just add them but didnt work. You need to replace it. Work with and without filtering of teams. I copied my code below.
            case "IKO":
                return {
                    icon: "https://www.shl.se/team_graphics/nef_shl/iko1-iko-891ab/special/30.png",
                    name: "Oskarshamn"
                };
            case "LIF":
                return {
                    icon: "https://www.shl.se/team_graphics/nef_shl/lif1-lif-57923/special/30.png",
                    name: "Leksand"
                };

Thanks! I'll try this later.

uFreke>>Does your table update as it should? Seems like mine only load when I start MM.
I might be missing something here...

Yea, I have noticed the same thing. Will see if i can find something, I don't have very high coding skills but we'll see. For now I just do a pm2 restart each night at 3 am.

Sorry for late reply @uFreke @anderswallerius @htilly, this has been fixed now! So please download the latest version!
Update
Run git pull inside ../modules/MMM-SHL/ folder.
Run npm install inside ../modules/MMM-SHL/ folder

I have also added the possibility to see time stamp of when the last updated happened. See read me, so you can ensure it gets updated :)

Works great! Thanks for the fix!!

Thanks for the fix bureus!
htilly > Have you changed the local setting in the config file (almost at the top of default config file)?
On my MM the updated date format is Swedish std.

My table haven't updated after last nights games. Updated 2019-10-01 07:05:49 (yesterday when I updated the module and restarted MM).
Have I done something wrong/missing something?
My config only have clientId and secret.
Does the new version work for anyone?

@anderswallerius I have similar problems actually, with updates. So will look into this today to ensure updates of the table. So what i am doing today is to calculate when the next game will end, and then update after that game has ended. Seems like it could be something with either timer or with conversion between date and time that is causing this. So will add a small db to the app, that will hold next update time and try with that approach instead of setting a timer based on ms which are like 2 days away.

@anderswallerius i found a bug in the code, that was caused by 403 unauthorized refresh token flow. Which was causing update to fail. It has been resolved now in the latest release, so please verify if updates works now :)

@bureus I have now updated my SHL module, I guessing it will work now.
I saw in my logs that there were something with the token (but I don't understand these things well).
Thanks anyway!


Declarative secrets

Proposal
Allow secrets to be declared in devcontainer outlining requirements to successfully run the container. All declared secrets in this initial specification would be injected into the container as ENV variables.
Declared secrets would be recommendations not requirements. Missing secrets should not prevent creation of the container.
Example
{
  "secrets": [
    { "name": "MY_SECRET", "description": "This is a great description of MY_SECRET." }
  ]
}

Related to https://github.com/github/codespaces/issues/12040

Would an optional boolean required for each secret make sense to include (defaults to false) ?

If a secret represents an external API key, then it might be helpful to allow the repo maintainer to include the URL to retrieve it. That way, the experience can feel as immediately actionable as possible (e.g. "You need this secret and here's where to get it").
I could imagine that being enable by...

Allowing the description to be Markdown (and we render links in the UI)
Adding an optional url property to the secret schema.

I assume this is for the devcontainer.json? Would the devcontainer-feature.json also support the declaration of secrets? Would they go into the image metadata?
Not every UI might be able to or allow for rendering Markdown / HTML (e.g., VS Code's QuickPick UI). We could keep the description plain-text and add an optional "documentationURL" property to allow for more flexibility in the UI.
I suggest we use a JSON object mapping secret names to their properties, that will align well with existing properties like "containerEnv" and "remoteEnv":
    "secrets": {
        "MY_SECRET": {
            "description": "This is a great description of MY_SECRET."
        }
    },

Instead of making secrets implicitly part of the environment variables, we could use a similar syntax to the one we are using, e.g., to include local variables ${localEnv:SOME_VARIABLE} in the devcontainer.json and reference secrets as ${secret:MY_SECRET}. That would allow for additional flexibility in where and how secrets can be used:
{
    "image": "mcr.microsoft.com/devcontainers/base:bullseye",
    "secrets": {
        "MY_SECRET": {
            "description": "This is a great description of MY_SECRET."
        }
    },
    "remoteEnv": {
        "MY_SECRET": "${secret:MY_SECRET}",
        "SOME_VARIABLE": "${localEnv:SOME_VARIABLE}"
    },
    "features": {
        "ghcr.io/devcontainers/features/my_feature:1": {
            "version": "latest",
            "accessToken": "${secret:MY_SECRET}"
        }
    }
}

Instead of making secrets implicitly part of the environment variables,

@chrmarti I think by president, the secrets should be injected as environment variables by default.  We could have a type on the secret over time.  Given the amount of existing use, I think we should mirror Codespaces in that regard. Too much existing precedent to vary IMHO.
That said, everything else makes sense to me.

Ok, so here's the current proposal summary after a few other conversations:

To maintain compatibility, we can have secrets that are declared end up as environment variables by default. It is up to the implementing tool / service to ensure that secrets are not added too permissibly. (e.g., user secrets have to be explicitly assigned to a repository in Codespaces for them to appear)  This makes sense, since only the invoking system can know this context, and devcontainer.json itself is inherently shared in general - forcing a declaration really doesn't provide added security as a result.  For example, the VS Code team needs to consider how secrets should be set for the Dev Containers extension in general. (A .env file in a specific location? Something else? How should access to secrets be restricted?)
However, to allow users to opt out of environment variables being set, we can add a flag into the secret declaration (e.g. "autoInject": false or "type": "reference").
In either case, a ${secret:<blah>} syntax can be used to reference these elsewhere in the devcontainer.json. Right now this does not provide guarantees that this would not result in the secret being placed somewhere in the container, but it provides a useful way to inject user level secrets and parameters into Features in general.
However, secret requirements can also appear in devcontainer-features.json since Features can have explicit requirements. Once again, the point of control on what goes in them is within the implementing system's control.

{
    "image": "mcr.microsoft.com/devcontainers/base:bullseye",
    "secrets": {
        "MY_SECRET": {
            "description": "I will show up as an env var."
        },
        "MY_NON_ENV_SECRET": {
            "description": "I will not show up as an env var."
            "type": "reference"
        }
    },
    "features": {
        "ghcr.io/devcontainers/features/my_feature:1": {
            "version": "latest",
            "accessToken": "${secret:MY_NON_ENV_SECRET}"
        }
    }
}

@Chuxel I don't think most of that impacts us directly on Codespaces so that seems fine to me. Just to clarify a minimal implementation for Codespaces would now look something like this correct?
{
    "image": "mcr.microsoft.com/devcontainers/base:bullseye",
    "secrets": {
        "CHAT_GPT_API_KEY": {
            "description": "I'm your super cool API key for ChatGPT.",
            "documentationUrl": "https://openai.com/api/"
        }
    }
}

@Chuxel I don't think most of that impacts us directly on Codespaces so that seems fine to me. Just to clarify a minimal implementation for Codespaces would now look something like this correct?
{
    "image": "mcr.microsoft.com/devcontainers/base:bullseye",
    "secrets": {
        "CHAT_GPT_API_KEY": {
            "description": "I'm your super cool API key for ChatGPT.",
            "documentationUrl": "https://openai.com/api/"
        }
    }
}

Yeah this should get added to the devcontainers CLI as a reference implementation, which would allow all those things to work. But an implementation outside of the CLI could start with just that, yes. There's a spot for tool/service specific features and and limitations we can add it to in containers.dev.

@bamurtaugh with the proposal merged do we close this issue now?

@bdmac Yes! And then you open a new issue labeled finalization: https://github.com/devcontainers/spec/labels/finalization, so that anyone from the community can provide thoughts to help continue shaping it.
I'd also recommend sharing the finalization issue in the community Slack channel for greater awareness.

@bamurtaugh I opened https://github.com/devcontainers/spec/issues/216 for finalization but my access won't let me add labels.

Thanks! I'll add it for you.

Not entirely sure if this also applies but we intend to use Doppler (link) which is responsible for managing our environment variables.
Right now, the problem is that we have to pass a Token as an environment variable which allows the container to obtain the environment variables needed for the container to operate.
I was not able to find any information about this but the idea would be.

automatically generate a temporary Doppler token (valid for X minutes/hours) and store it as an environmental variable (@host) and pass it into the devcontainer.
Always have the token being generated using export DOPPLER_TOKEN=$(doppler configs tokens create token-name --plain) before starting the devcontainer build/start.

If the above does not happen then we have to explicitly pass the token and manually generate a new token every now and then, risking having the token submitted to our git repo which is not great.
Questions:

Is there a way to run a command before a build or starting/run a container?
Passing an envFile could work if we were able to run doppler configs tokens create token-name --plain) > .env.temp before launching the container also, as these tokens expire after X amount of time it would be reasonable.
Can I start or build a devcontainer via the terminal instead of using the VScode command palette?

Thanks!
And great work for having these tools being developed which addresses many dev containerization challenges.

For 2. initializeCommand can be used. There were some issues with this approach, but I believe the functionality is expected to stay https://github.com/microsoft/vscode-remote-release/issues/7377

For 2. initializeCommand can be used. There were some issues with this approach, but I believe the functionality is expected to stay https://github.com/microsoft/vscode-remote-release/issues/7377

I think this might do the trick...  I'll try it tomorrow! Thanks