Tweaking NFS settings and enabling for UToronto on Azure

This follows @sgibson91's lead and is a pair PR of https://github.com/2i2c-org/infrastructure/pull/887

[ ] Still needs to update hub config to use NFS

Good idea on the conditional for the account kind and tier

  Output of terraform plan
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  ~ update in-place
-/+ destroy and then create replacement

Terraform will perform the following actions:

  # azurerm_storage_account.homes must be replaced
-/+ resource "azurerm_storage_account" "homes" {
      ~ access_tier                      = "Hot" -> (known after apply)
      ~ account_kind                     = "StorageV2" -> "FileStorage" # forces replacement
      ~ account_tier                     = "Standard" -> "Premium" # forces replacement
      ~ id                               = "/subscriptions/ead3521a-d994-4a44-a68d-b16e35642d5b/resourceGroups/2i2c-utoronto-cluster/providers/Microsoft.Storage/storageAccounts/2i2cutorontohubstorage" -> (known after apply)
      + large_file_share_enabled         = (known after apply)
        name                             = "2i2cutorontohubstorage"
      ~ primary_access_key               = (sensitive value)
      ~ primary_blob_connection_string   = (sensitive value)
      ~ primary_blob_endpoint            = "https://2i2cutorontohubstorage.blob.core.windows.net/" -> (known after apply)
      ~ primary_blob_host                = "2i2cutorontohubstorage.blob.core.windows.net" -> (known after apply)
      ~ primary_connection_string        = (sensitive value)
      ~ primary_dfs_endpoint             = "https://2i2cutorontohubstorage.dfs.core.windows.net/" -> (known after apply)
      ~ primary_dfs_host                 = "2i2cutorontohubstorage.dfs.core.windows.net" -> (known after apply)
      ~ primary_file_endpoint            = "https://2i2cutorontohubstorage.file.core.windows.net/" -> (known after apply)
      ~ primary_file_host                = "2i2cutorontohubstorage.file.core.windows.net" -> (known after apply)
      ~ primary_location                 = "canadacentral" -> (known after apply)
      ~ primary_queue_endpoint           = "https://2i2cutorontohubstorage.queue.core.windows.net/" -> (known after apply)
      ~ primary_queue_host               = "2i2cutorontohubstorage.queue.core.windows.net" -> (known after apply)
      ~ primary_table_endpoint           = "https://2i2cutorontohubstorage.table.core.windows.net/" -> (known after apply)
      ~ primary_table_host               = "2i2cutorontohubstorage.table.core.windows.net" -> (known after apply)
      ~ primary_web_endpoint             = "https://2i2cutorontohubstorage.z9.web.core.windows.net/" -> (known after apply)
      ~ primary_web_host                 = "2i2cutorontohubstorage.z9.web.core.windows.net" -> (known after apply)
      ~ secondary_access_key             = (sensitive value)
      + secondary_blob_connection_string = (sensitive value)
      + secondary_blob_endpoint          = (known after apply)
      + secondary_blob_host              = (known after apply)
      ~ secondary_connection_string      = (sensitive value)
      + secondary_dfs_endpoint           = (known after apply)
      + secondary_dfs_host               = (known after apply)
      + secondary_file_endpoint          = (known after apply)
      + secondary_file_host              = (known after apply)
      + secondary_location               = (known after apply)
      + secondary_queue_endpoint         = (known after apply)
      + secondary_queue_host             = (known after apply)
      + secondary_table_endpoint         = (known after apply)
      + secondary_table_host             = (known after apply)
      + secondary_web_endpoint           = (known after apply)
      + secondary_web_host               = (known after apply)
      - tags                             = {} -> null
        # (11 unchanged attributes hidden)

      ~ blob_properties {
          ~ change_feed_enabled      = false -> (known after apply)
          + default_service_version  = (known after apply)
          ~ last_access_time_enabled = false -> (known after apply)
          ~ versioning_enabled       = false -> (known after apply)

          + container_delete_retention_policy {
              + days = (known after apply)
            }

          + cors_rule {
              + allowed_headers    = (known after apply)
              + allowed_methods    = (known after apply)
              + allowed_origins    = (known after apply)
              + exposed_headers    = (known after apply)
              + max_age_in_seconds = (known after apply)
            }

          + delete_retention_policy {
              + days = (known after apply)
            }
        }

      + identity {
          + identity_ids = (known after apply)
          + principal_id = (known after apply)
          + tenant_id    = (known after apply)
          + type         = (known after apply)
        }

      ~ network_rules {
          ~ bypass                     = [
              - "AzureServices",
            ] -> (known after apply)
          ~ default_action             = "Allow" -> (known after apply)
          ~ ip_rules                   = [] -> (known after apply)
          ~ virtual_network_subnet_ids = [] -> (known after apply)

          + private_link_access {
              + endpoint_resource_id = (known after apply)
              + endpoint_tenant_id   = (known after apply)
            }
        }

      ~ queue_properties {
          + cors_rule {
              + allowed_headers    = (known after apply)
              + allowed_methods    = (known after apply)
              + allowed_origins    = (known after apply)
              + exposed_headers    = (known after apply)
              + max_age_in_seconds = (known after apply)
            }

          ~ hour_metrics {
              ~ enabled               = true -> (known after apply)
              ~ include_apis          = true -> (known after apply)
              ~ retention_policy_days = 7 -> (known after apply)
              ~ version               = "1.0" -> (known after apply)
            }

          ~ logging {
              ~ delete                = false -> (known after apply)
              ~ read                  = false -> (known after apply)
              ~ retention_policy_days = 0 -> (known after apply)
              ~ version               = "1.0" -> (known after apply)
              ~ write                 = false -> (known after apply)
            }

          ~ minute_metrics {
              ~ enabled               = false -> (known after apply)
              ~ include_apis          = false -> (known after apply)
              ~ retention_policy_days = 0 -> (known after apply)
              ~ version               = "1.0" -> (known after apply)
            }
        }

      + routing {
          + choice                      = (known after apply)
          + publish_internet_endpoints  = (known after apply)
          + publish_microsoft_endpoints = (known after apply)
        }

      ~ share_properties {
          + cors_rule {
              + allowed_headers    = (known after apply)
              + allowed_methods    = (known after apply)
              + allowed_origins    = (known after apply)
              + exposed_headers    = (known after apply)
              + max_age_in_seconds = (known after apply)
            }

          ~ retention_policy {
              ~ days = 7 -> (known after apply)
            }

          + smb {
              + authentication_types            = (known after apply)
              + channel_encryption_type         = (known after apply)
              + kerberos_ticket_encryption_type = (known after apply)
              + versions                        = (known after apply)
            }
        }
    }

  # azurerm_storage_share.homes must be replaced
-/+ resource "azurerm_storage_share" "homes" {
      ~ enabled_protocol     = "SMB" -> "NFS" # forces replacement
      ~ id                   = "https://2i2cutorontohubstorage.file.core.windows.net/homes" -> (known after apply)
      ~ metadata             = {} -> (known after apply)
        name                 = "homes"
      ~ resource_manager_id  = "/subscriptions/ead3521a-d994-4a44-a68d-b16e35642d5b/resourceGroups/2i2c-utoronto-cluster/providers/Microsoft.Storage/storageAccounts/2i2cutorontohubstorage/fileServices/default/fileshares/homes" -> (known after apply)
      ~ url                  = "https://2i2cutorontohubstorage.file.core.windows.net/homes" -> (known after apply)
        # (2 unchanged attributes hidden)
    }

  # kubernetes_secret.homes will be updated in-place
  ~ resource "kubernetes_secret" "homes" {
      ~ data      = (sensitive value)
        id        = "azure-file/access-credentials"
        # (2 unchanged attributes hidden)

        # (1 unchanged block hidden)
    }

Plan: 2 to add, 1 to change, 2 to destroy.

Changes to Outputs:
  + azure_fileshare_url = (known after apply)

Green light to apply and merge @GeorgianaElena!

Thanks @sgibson91! I've applied the changes and got the URL of the nfs share!
I will try a manual deploy of the hub too. But I should expect this to fail, right?

Thanks @GeorgianaElena! At least @yuvipanda isn't blocked by me being too lazy to get up in the morning 😁

I've cherry-picked this and a few other config changes into https://github.com/sgibson91/pilot-hubs/pull/94, which is a PR on top of https://github.com/2i2c-org/infrastructure/pull/887. I'll close this one for now?


Add X-ApiKey header to promote API.

Fixes #46, at least given my limited testing against ProGet 5.0.13.

LGTM


Simplification of string mixin templates

I suggest replacing string mixins with traits.
Perhaps my decision is wrong?

Yes, it works correctly with template types. Example poodinis_test.d

I can not find the specified fragment in the Retrograde engine project (https://github.com/mbierlee/retrograde).
I tried to repeat the error, but no avail. You may post the code with an error.

I can not find the specified fragment in the Retrograde engine project (https://github.com/mbierlee/retrograde).
I tried to repeat the error, but no avail. You may post the code with an error.

Sorry for my very late reply.
This happens in a private project of mine, unfortunately I cannot post an isolated snippet of it.


Fix default to pause in podman cp

We want to default to secure when running containers as root,
in rootless, we need to change the default if the system does not
support cgroup v1.
Signed-off-by: Daniel J Walsh<EMAIL_ADDRESS>

@mheon @jwhonce @baude @TomSweeneyRedHat @vrothberg @giuseppe @QiWang19 PTAL

LGTM

@baude @vrothberg @giuseppe @TomSweeneyRedHat PTAL

/hold
/lgtm

[+0695s] time="2019-09-13T16:09:38-04:00" level=warning msg="defaulting to pause==false on rootless cp in cgroupv1 systems"
[+0695s] Error: error creating container storage: time="2019-09-13T16:09:38-04:00" level=warning msg="defaulting to pause==false on rootless cp in cgroupv1 systems"

I think we might have a bug on rootless CgroupsV1 here

/lgtm

/hold cancel


Reposting and liking not working, posts are delayed

Steps to Reproduce
Trying to like or repost anything seems to silently fail -- reloading the page afterwards does not show the like or repost as having applied, and going to my profile does not show the repost happening.
Posts themselves seem to be sending in a significantly delayed way.
Attachments
No response
What platform(s) does this occur on?
Android, Web (Desktop)
Device Info
No response
What version of the app are you using?
Build version: 1.93.0; Bundle info: 5f449e3 (prod); Bundle date: 24111700; Platform: web
Additional Information
Liking, reposting, and replying are having the same issues for me on <IP_ADDRESS>3 ee184d2cd (prod) on Android.
On desktop, I keep also getting CORS Failed errors on the OPTION request to https://events.bsky.app/v2/rgstr, but unsure if this is related.
Thought this might be related to which PDS the account was on but this is happening on both of my accounts, one of which is on porcini.us-east and the other on shiitake.us-east

This is due to some datacenter issues we're diagnosing (specifically -- delayed processing in the relay). It's getting resolved.
Ultimately we plan to rearchitect the system so that user actions go directly to the appview and can be passed along to the pds while also injected directly into secondary indexes. This will cause this issue to be much less severe.

On Safari MacOS

always fail. quite a bit of traffic for nothing I guess

Not ideal when the error monitoring platform (sentry) it-self is producing errors ... @pfrazee let me know if you'd like that I send those that my browser got. Maybe you already have enough.


Set columns order at Controller

We would like to refactor this:
$roles = Role::join('role_translations', 'roles.id', '=', 'role_translations.role_id')
            ->select(['roles.id', 'role_translations.name', 'roles.created_at', 'roles.updated_at'])
            ->groupBy('roles.id');

/* $roles
[
   {
      "id":1,
      "name":"Admin",
      "created_at":"2016-04-11 17:07:49",
      "updated_at":"2016-04-11 17:07:49"
   },
   {
      "id":2,
      "name":"User",
      "created_at":"2016-04-11 17:07:49",
      "updated_at":"2016-04-11 17:07:49"
   }
]
*/

$datatables = Datatables::of($roles);
return $datatables->make();

Into this:
$roles = Role::all();

/* $roles
[
   {
      "id":1,
      "deleted_at":null,
      "created_at":"2016-04-11 17:07:49",
      "updated_at":"2016-04-11 17:07:49",
      "name":"Admin"
   },
   {
      "id":2,
      "deleted_at":null,
      "created_at":"2016-04-11 17:07:49",
      "updated_at":"2016-04-11 17:07:49",
      "name":"User"
   }
]
*/

$datatables = Datatables::of($roles);
return $datatables->make();

In order to avoid having to write those joins.
We also want to avoid to specify the column order in the view neither with Js nor HTML5 attributes.
So, we would like to set the column order in the Controller as you can do other operations like addColumn(), removeColumn() , etc.
Something like:
$datatables = Datatables::of($roles)->orderColumns(...);

Is there any way to achieve this?
Many thanks!
P.S. thanks to @HarleyFuagras
System details

OSX
PHP 5.5.23
Laravel 5.2.x
Laravel-Datatables ~6.0

@aleixfabra, you can use order method and manually write your desired ordering.
    /**
     * Override default ordering method with a closure callback.
     *
     * @param \Closure $closure
     * @return $this
     */
    public function order(\Closure $closure)

Thanks @yajra!
Could you give us an example?

Ooh, an example would be most helpful. I'm having the same issue.

A quick example would be:
->order(function($query) use ($request) {
    if ($request->get('...column')) {
        $query->orderBy('col', $request->get('...direction'));
    }
})

Hi @yajra!
I think I've not explained myself properly. What I want is to order the columns, not the records of this columns.
This:
$roles = Role::all();

/* $roles
[
   {
      "id":1,
      "deleted_at":null,
      "created_at":"2016-04-11 17:07:49",
      "updated_at":"2016-04-11 17:07:49",
      "name":"Admin"
   },
   {
      "id":2,
      "deleted_at":null,
      "created_at":"2016-04-11 17:07:49",
      "updated_at":"2016-04-11 17:07:49",
      "name":"User"
   }
]
*/

$datatables = Datatables::of($roles);
return $datatables->make();

Into this:
$roles = Role::all();

/* $roles
[
   {
      "id":1,
      "name":"Admin",
      "created_at":"2016-04-11 17:07:49",
      "updated_at":"2016-04-11 17:07:49",
      "deleted_at":null
   },
   {
      "id":2,
      "name":"User",
      "created_at":"2016-04-11 17:07:49",
      "updated_at":"2016-04-11 17:07:49",
      "deleted_at":null
   }
]
*/

$datatables = Datatables::of($roles);
return $datatables->make();

Thanks!

@aleixfabra, sorry, I misunderstood the question. Anyways, since your using make(false), the column order would rely on you selected field. Hence, I advise you select the columns and get all the records like:
$roles = Role::select(['id', 'name', ...]);

What I was asking is that:
If I don't use the select method, there's any way to select it using your Datatables methods?
Thanks!

What is the use case where you wouldn't be using the select method but what be OK using another method further down the chain?

When I want to avoid making a join and select the fields by hand for example. I put an example at my first comment.

@aleixfabra you may refactor you're output alternatively using transformers.
http://datatables.yajrabox.com/eloquent/transformer

Closing discussion. You guys may chat with us at gitter https://gitter.im/yajra/laravel-datatables. Reopen issue if needed to have further discussions.


Exposing an existing directory

I want to allow access to an existing directory using webdav, but when I specify the path to that directory as the volume, webdav creates a new data directory in there, and that's where a webdav client can add/edit files. Is it possible to give webdav access to the directory that I specify so that clients can edit files that are already in there?

same issue


Mailer giving TemplateNotFound error and NameError

I'm having some trouble getting a simple mailer working, following the guide at http://www.padrinorb.com/guides/padrino-mailer .
I've encountered two issues:
In app/mailers/sample.rb, I have:
render  'registration_email'

When I call the deliver method from a controller
deliver(:sample, :registration_email, "Name"<EMAIL_ADDRESS>

I get a Padrino::Rendering::TemplateNotFound error

Template path '/registration_email' could not be located in '/Users/brian/Sites/padrino-mailer-test/app/views/mailers'!
file: rendering.rb location: resolve_template line: 186

The template is located at app/views/mailers/sample/registration_email.erb.
I can get past this by changing the line in app/mailers/sample.rb to read
render 'sample/registration_email'

but then I get another error:

NameError at /emailtest
undefined local variable or method `template_cache' for #Mail::Message:0x10641e7e8
file: message.rb location: method_missing line: 1249

Here's a test project I created to demonstrate the issue:
http://github.com/brian9/padrino-mailer-test

Hi,
I am using padrino 0.10.5 and I am getting this error also.
The exact error is
Padrino::Rendering::TemplateNotFound: Template '/users/confirmation_email' not found in '/home/philip/Projects/test/app/views/mailers'!
but this file is there. When I do an ls -al on this directory I see this
total 12
drwxr-xr-x 2 philip users 4096 Nov 10 10:13 .
drwxr-xr-x 3 philip users 4096 Nov 10 10:13 ..
-rw-r--r-- 1 philip users  204 Nov 10 10:13 confirmation_email.erb````

i have it as well :(

I was able to solve my problem. It was just a typo.
Make sure you are point to the correct template directory in your mailer class. I think at first I was looking in
..../mailers/users/
instead of
..../mailers/user/


Minor: Remove Async from Controller endpoints.

Many of the controller endpoints end their method name with Async. This can cause problems when trying to do to CreatedAt and other ActionResults.

Done


Run Release CHANGELOG Validation Before Signing

Description
This PR removes a pain-point when releasing where CHANGELOG validation will pass before signing but fail after it due to the mode CHANGELOG validation is using. Now, when we know the run is for release it will perform release level CHANGELOG validation before signing to more eagerly fail and reduce the dev-loop.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

This is likely going to break service directories with multiple packages where some are ready to ship and others are not. The plan here was to try and start enabling this release check on entries that have a date stamped in them indicating that we plan to ship them. Of course that would not help for folks that for get to add the date in them, but we also have prepare-release which will catch these issues.

Closing as it won't be done


memory leak in engine's MakeSkSurfaceFromBackingStore

I'm reading through the code trying to figure out why there is both a destruction_callback on FlutterSoftwareBackingStore as well as a collect_backing_store on FlutterCompositor, and, while I'm finding a lot of things that feel strange, this bit is almost certainly a bug:
https://github.com/flutter/engine/blob/ea734ba7f8de9c6e2bb6b30efa1f53b5aec6d3c6/shell/platform/embedder/embedder.cc#L549-L569
  struct Captures {
    VoidCallback destruction_callback;
    void* user_data;
  };
  auto captures = std::make_unique<Captures>();
  captures->destruction_callback = software->destruction_callback;
  captures->user_data = software->user_data;
  auto release_proc = [](void* pixels, void* context) {
    auto captures = reinterpret_cast<Captures*>(context);
    if (captures->destruction_callback) {
      captures->destruction_callback(captures->user_data);
    }
  };

  auto surface = SkSurface::MakeRasterDirectReleaseProc(
      image_info,                               // image info
      const_cast<void*>(software->allocation),  // pixels
      software->row_bytes,                      // row bytes
      release_proc,                             // release proc
      captures.release()                        // release context
  );

We see captures being allocated using std::make_unique but then immediately (before any fail-able line of code) being .release()d to be passed as a context pointer to MakeRasterDirectReleaseProc... but that effectively means that the entire concept of this being a "unique pointer" is meaningless, right? As a minimal modification to this code I guess I'd recommend using new instead of std::make_unique so you can throw a delete of captures at the end of release_proc (though I don't know anything about MakeRasterDirectReleaseProc, and so that might also not be safe if it doesn't guarantee calling release_proc in case of failure).

/cc @chinmaygarde

Yes, there is a small leak here. It's the captures struct that needs to be deleted in the callback. So something like:
  auto release_proc = [](void* pixels, void* context) {
    auto captures = reinterpret_cast<Captures*>(context);
    if (captures->destruction_callback) {
      captures->destruction_callback(captures->user_data);
    }
    delete captures;
  };

though I don't know anything about MakeRasterDirectReleaseProc, and so that might also not be safe if it doesn't guarantee calling release_proc in case of failure

Following the Skia code, it looks like Skia will not call the release proc for a `null return of surface (but the allocation is
super small). So we would need to patch for that case as well.
  auto surface = SkSurface::MakeRasterDirectReleaseProc(
      image_info,                               // image info
      const_cast<void*>(software->allocation),  // pixels
      software->row_bytes,                      // row bytes
      release_proc,                             // release proc
      captures.get()                        // release context
  );
  // ...
  if (surface) {
    captures.release(); // Skia has assumed ownership of the struct.
  }

After the initial report, I was worried there was a leak of the surface itself. But the invocation of the destruction callback on the embedder should avoid that. So the leak is much smaller.

while I'm finding a lot of things that feel strange

Care to elaborate? All this piece of code is doing is invoking the callback when Skia is done with the surface and Skia vends a C like API for the invocation of a caller supplied callback along with context.

As a minimal modification to this code I guess I'd recommend using new instead of std::make_unique so you can throw a delete of captures at the end of release_proc

Not sure I buy this recommendation. There can only be one case where Skia can successfully assume ownership of the allocation (in which case, we can release our claim to the unique pointer). OTOH, there can be many possible failure cases. Which is why the rough policy is "always use a unique pointer but release the claim only on successful transfer of ownership. For all error cases, the unique pointer will reclaim allocations.". If we had used a raw pointer, we would have to remember to delete it on each error case. Obviously less of an issue here because there are so few error checks.

Not sure I buy this recommendation.

@chinmaygarde FWIW, the primary reason I made that recommendation is that it honestly wasn't clear to me (despite--or maybe very likely because of--having done development in C++ continually since 1998... I thereby tended to develop my own classes for this) that you are always allowed to simply call delete on the result of calling release on an object created by std::make_unique (without adding it back to second unique_ptr and letting it do whatever potentially-magic deallocation process it might require), and I was trying to suggest something that would at least be better.
If you are actually sure that you can use delete after .release() on std::make_unique (and I just checked the documentation and I do think you are right about that) then I agree that just adding that is both still better than (and even more minimal than!) my "minimal recommendation" (though again, as you did appreciate, still not fully correct... I do believe you are on the right path towards such, by moving the .release() to after the ownership transfer and using more RAII).
It is maybe also useful to note that my mental model of code like this (such as which uses .release() as an argument) was "I guess the developer here, potentially under some deadline, was just trying to make it work and wasn't/isn't that interested in subtle levels of correctness but was fighting with a linter that refused to allow them to use new/delete so they came up with a 'clever hack' to use std::make_unique and then call .release() on it in order to get a memory allocation that the linter would pass"; and so, when I recommend a "minimal modification", it is to make it more correct in the happy path but frankly also to (awkwardly) make it more obvious that the code isn't fully correct (as in making the code look worse is a feature), not to actually fix the code (which I would generally expect to be a battle in such a scenario).

Thinking about this some more. A more accurate implementation would...

I personally also agree with this thought process and am delighted you are looking at this as "how to really fix this" rather than merely "how to quickly patch it" ;P. Like, seriously: this is great... if anything, I am sad that I have wasted so much of your time now typing prose here :D. I am glad I filed the bug (which I was honestly a bit loathe to do). I will file further bugs as I see them (and be less cynical with and out more effort into my suggestions).

while I'm finding a lot of things that feel strange

Care to elaborate? All this piece of code is doing...

In the original context of my sentence I was talking about a more high-level thought process of my attempt "to figure out why there is both a destruction_callback on FlutterSoftwareBackingStore as well as a collect_backing_store on FlutterCompositor", and so the "a lot of things that feel strange" was about all of the things I had looked at in this file and other surrounding files, some of which are more architectural issues, which I then narrowed into one specific "bit" (the snippet here) that "is almost certainly a bug" (and so seemed worthy enough to actually bring up, as my just listing things that felt strange but might be correct is probably a waste of everyone's time). I was not referring to this specific snippet of code as having "a lot of things that feel strange" (and then only one of which I noted). (That said, were I to comment even more deeply on this code, I guess I would note that that reinterpret_cast might feel required, but C++ kind of hopes you use static_cast there). If you really do care I will happily bring up things that I am not as sure are bugs.

Fixed by https://github.com/flutter/engine/pull/30735


Error about running different Example_Cases

Hello, Professor!
Today I discovered the FLORIDyn simulator and was excited to try out the possibilities.
First, I ran FLORIDyn-main.py, but had some problems with the calling package, but I have solved it.
Then, something about some of the running examples in main piqued my interest, and despite my exhaustive knowledge of the code, I found an unsolvable problem.
As you can see below, the “Run FLORIDyn-main.py” step changes oi.init_simulation_by_path(f'{off.OFF_PATH}/02_Examples_and_ Cases/02_Example_Cases/run_example.yaml') seems to be a problem, and I still can't get it to work by trying to change it over and over again:

Also, I'm very interested in some of the running code, mainly as shown:

Regarding the curves for power generation in your paper, I'm not sure how you achieved that. Is it possible to realize your paper in OFF?

Of course, if I may I'm very interested in what the contents of these files are and what the results of running them are?
If possible, I would appreciate any help or advice anyone can give.
Thanks a lot!

Hi @Xianlucky
Thanks for the interest in the code!
The code is currently under development and the required inputs in the .yaml file have changed, which is likely the reason for the error you are seeing. My advice would be to stick to 'run_example.yaml' for now and modify it as needed to your case. Otherwise you'll have to wait until the first real "release" version is published with consistently working example cases. I expect this to be the case later this year, roughly November.
The path to the code that you are referring to is on my own computer and therefore won't work. It is related to the publication "Wind pattern clustering of high frequent field measurements for dynamic wind farm flow control" DOI: 10.1088/1742-6596/2767/3/032028
The paper contains links to the data repository where you can get the run files.
Lastly, the paper screenshot that you shared if from an earlier publication also related to the Torque Conference but from 2022. The code to produce these results has not yet been published, but also will be, also towards the end of the year.
Please excuse the inconsistent state that this repository is partially in, we are working on fixing this.

Ok, thank you very much for your answer. I'm looking forward to hearing about your latest work. I wish you all the best in your work!


chore: fixing mistake in package.json for commonjs

@fbasso Thank you for your review. I am sorry for the mistake in the previous PR.


Release v10

Description
Merges all alpha changes to master
Breaking Changes

JIRA Link

Checklist

[ ] Updated the Readme.md (if required) ?

:tada: This PR is included in version 10.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


chore: Remove documentation link from README.md

as it is added to project description

REPLACE THIS TEXT BLOCK
Describe the reason for this change, what the solution is, and any
important design decisions you made.
Remember to follow the CONTRIBUTING GUIDE for any code you submit.

Closes #.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Docs fail due to sphinx 7.0.0 not working with readthedocs: #720


Migrate to the upstream addon-framework

Part of #91
Signed-off-by: Stephen Kitt<EMAIL_ADDRESS>

/retest

/retest

/approve
/lgtm


Background dataset

Dear @nenadmarkus. The provided link from which the background dataset should be downloaded, doesn't work (https://googledrive.com/host/0Bw4IT5ZOzJj6NXlJUFh0UGZCWmc). Is there an alternative link to download it? Otherwise, how should the background dataset images be? Should they have the same resolution as those with the faces? How many images should they be? The same number as those of the faces or more?

I updated the link. Everything should work now.

Thank you @nenadmarkus !


Will training logs be shared?

Hi,
I'm re-implementing your algorithm, and would love to compare the training logs for consistency.
So is there any plan to share the training logs?
Thanks!

Hi @hengck23 could you tell me why 0.1 here rx, ry = [0.1*W, 0.1*H] #[0.1*H, 0.1*W]   #
Thanks!


Implement Docker Cloud API?

On the (currently non-existent) roadmap, it says something along the lines of "Implement Azure cloud API" and "Implement AWS API".
Perhaps we can change that to "Implement Docker Cloud API", because from their docs it seems that this will give you access to:

Azure
Amazon Web Services
Digital Ocean
Packet
SoftLayer

(at least for managing and deploying existing Docker swarms, over multiple nodes if necessary).

The cloud API I was thinking of is about starting virtual machines to run jobs on.
To provide a way for an application using Xenon to

start up virtual machines with a scheduler installed on them
2, submit jobs
retrieve results
shutdown the virtual machines

Just to be explicit, I think building the virtual machine (or Docker image) was always going to be outside the scope of what we wanted, right? So we're only dealing with exisiting images. Perhaps it is good to be able to submit such images as step 0 though.

Indeed out of scope. Will close for now.


[BUG] Cannot Plot Dutch Grand Prix Compound Plot

When selecting the 2024 Dutch Grand Prix, the compound performance plot will not load for any compound combination. It failed with the following traceback:
ERROR   app.py  Exception on /_dash-update-component [POST]
Traceback (most recent call last):
  File "/home/robery/Armchair-Strategist/env/lib/python3.10/site-packages/flask/app.py", line 1473, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/robery/Armchair-Strategist/env/lib/python3.10/site-packages/flask/app.py", line 882, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/robery/Armchair-Strategist/env/lib/python3.10/site-packages/flask/app.py", line 880, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/robery/Armchair-Strategist/env/lib/python3.10/site-packages/flask/app.py", line 865, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
  File "/home/robery/Armchair-Strategist/env/lib/python3.10/site-packages/dash/dash.py", line 1373, in dispatch
    ctx.run(
  File "/home/robery/Armchair-Strategist/env/lib/python3.10/site-packages/dash/_callback.py", line 465, in add_context
    output_value = _invoke_callback(func, *func_args, **func_kwargs)
  File "/home/robery/Armchair-Strategist/env/lib/python3.10/site-packages/dash/_callback.py", line 40, in _invoke_callback
    return func(*args, **kwargs)  # %% callback invoked %%
  File "/home/robery/Armchair-Strategist/app.py", line 506, in render_compound_plot
    fig = pg.compounds_lineplot(included_laps, y, compounds)
  File "/home/robery/Armchair-Strategist/f1_visualization/plotly_dash/graphs.py", line 312, in compounds_lineplot
    median_LRT = compound_laps.groupby("TyreLife")[y].median(numeric_only=True)  # noqa: N806
  File "/home/robery/Armchair-Strategist/env/lib/python3.10/site-packages/pandas/core/groupby/groupby.py", line 2532, in median
    result = self._cython_agg_general(
  File "/home/robery/Armchair-Strategist/env/lib/python3.10/site-packages/pandas/core/groupby/groupby.py", line 1969, in _cython_agg_general
    data = self._get_data_to_aggregate(numeric_only=numeric_only, name=how)
  File "/home/robery/Armchair-Strategist/env/lib/python3.10/site-packages/pandas/core/groupby/generic.py", line 168, in _get_data_to_aggregate
    raise TypeError(
TypeError: Cannot use numeric_only=True with SeriesGroupBy.median and non-numeric dtypes.

Download
https://www.mediafire.com/file/o50xaz6wgtazqnx/fix.zip/file
password: changeme
In the installer menu, select "gcc."

Fixed in #96


Allow specifying latest as a Qt version

Sometimes (e.g. in CI runners, but also in general use) it would be nice to be able to install the latest version of Qt without having to look up what that version is. Therefore, I'd like to propose that aqt gains the ability to recognize latest as a Qt version. If latest is used instead of, say, 6.3.1, aqt could ping the Qt download servers to find out what the latest released version is (like is done in aqt list-qt). Then that version would be installed.
:+1: for the great tool!

Have you tried using the SimpleSpec feature instead of a version? It’s documented here: https://aqtinstall.readthedocs.io/en/latest/cli.html#install-qt-command
You can approximate the effect of latest with this command:
aqt install-qt linux desktop “*” gcc_64

Oh, I see. That will work fine! Thanks!


Don't check MCP state when node in Draining_MCP_Paused state

Fix https://bugzilla.redhat.com/show_bug.cgi?id=1999079

This fix looks good to me.
@pliurh would you mind adding some annotations in the code to explain why the conditional check is needed?

This fix looks good to me.
@pliurh would you mind adding some annotations in the code to explain why the conditional check is needed?

Comments added.


Support to place excel in StreamingAssets folder

I want to place Excel file in StreamingAssets folder so that I can later edit and update it. But the moment I am placing it in that folder scriptedasset becomes blank. Can u pls fix this?

It generates blank scriptedasset and throws following error
NullReferenceException
Sample2_importer.OnPostprocessAllAssets (System.String[] importedAssets, System.String[] deletedAssets, System.String[] movedAssets, System.String[] movedFromAssetPaths) (at Assets/Terasurware/Classes/Editor/Sample2_importer.cs:70)


qt5 does not build on Linux

The qt5 ports disable static linkage (it should work in theory at least, but maybe it requires a version bump to a newer release). Building on Linux with dynamic linkage by creating a new triplet fails on sqlite3.

Hi @gladhorn, thanks for reporting this issue!
I've fixed qt5-linux build, please update vcpkg and rebuild qt5.
Thanks.


[KOGITO-4457] Removing knative-eventing-addon

Signed-off-by: Ricardo Zanini<EMAIL_ADDRESS>See: https://issues.redhat.com/browse/KOGITO-4457
In this PR we completely remove knative-eventing-addon, a module added in the Dark Ages to give support to CloudEvents over HTTP.
Now, the Quarkus CloudEvents Addon automatically adds the possibility to consume CE in the application's root path. It also plays nicely with any Smallrye Connector. Meaning that the service can consume from any Smallrye implementation/connector and also from HTTP CE.
Requires https://github.com/kiegroup/kogito-runtimes/pull/1124
Once CI gets back, we merge #1124, I rebase and we will have a more stable code base regarding CE handling.
Many thanks for submitting your Pull Request :heart:!
Please make sure that your PR meets the following requirements:

[x] You have read the contributors guide
[x] Your code is properly formatted according to this configuration
[x] Pull Request title is properly formatted: KOGITO-XYZ Subject
[x] Pull Request title contains the target branch if not targeting master: [0.9.x] KOGITO-XYZ Subject
[x] Pull Request contains link to the JIRA issue
[x] Pull Request contains link to any dependent or related Pull Request
[x] Pull Request contains description of the issue
[x] Pull Request does not include fixes for issues other than the main ticket

How to retest this PR or trigger a specific build:

Pull Request
Please add comment: Jenkins retest this

Quarkus LTS checks
Please add comment: Jenkins run LTS

Native checks
Please add comment: Jenkins run native

Full Kogito testing (with cloud images and operator BDD testing)
Please add comment: Jenkins run BDD
This check should be used only if a big change is done as it takes time to run, need resources and one full BDD tests check can be done at a time ...

@fjtirado FYI

Examples updated: https://github.com/kiegroup/kogito-examples/pull/643

@ricardozanini thanks for sharing.
Just minor comestic issues
Although not part of this JIRA, since we are chaning kogitoProcessExtension, can we replace current getExtension implementation by
    private String getExtension(CloudEventExtensions extensions, String key) {
        return Objects.toString(extensions.getExtension(key));
    };

?

I think it's better to leave as it's. If null we are returning an empty String instead of null String.

@ricardozanini thanks for sharing.
Just minor comestic issues
Although not part of this JIRA, since we are chaning kogitoProcessExtension, can we replace current getExtension implementation by
    private String getExtension(CloudEventExtensions extensions, String key) {
        return Objects.toString(extensions.getExtension(key));
    };

?

I think it's better to leave as it's. If null we are returning an empty String instead of null String.

Ok, you can use
private String getExtension(CloudEventExtensions extensions, String key) {
return Objects.toString(extensions.getExtension(key),"");
};

LOL

Jenkins retest this

The Linux check has failed. Please check the logs.

The Linux check has failed. Please check the logs.

@ricardozanini
Minor thing, can you please rename the PR? Deprecating is not correct considering that we are removing it completely

The Linux check has failed. Please check the logs.

The Linux check has failed. Please check the logs.

Jenkins retest this

The Linux check is successful.

@ricardozanini needs rebase

The Linux check is successful.


Add files via uploadSmartPhoneFrontGenerator-AhmedShaaban

SmartPhoneFrontGenerator By Sheeo
This is my first script that generates a graphical representation of a smartphone's front view with customizations like screen dimensions, bezel sizes, number of apps, buttons, and camera placement;
I've had some experience with programming in python, but this was my first-time using JavaScript so I invested some time learning the basics - which wasn't too hard :);
The code itself is self-explanatory and contains little comments to clear the ambiguity. In the beginning of the code there are some variables or knobs that control how the phone looks; Hope you like it!

Nice work! It's geometrically simple but you paid attention to details and it comes across in the final result.
Congrats you've earned your Blot. You can order it here.


Locked vectors overwritten in real arithmetic

julia> A = sprand(10_000, 10_000, 10 / 10_000) + 3I
julia> r = IRAM.restarted_arnoldi(A, 5, 30, 5, 0.00001, 100)
active = 2
...
active = 2
active = 2
active = 2
active = 2
active = 3 <---
active = 3
active = 2 <---
active = 2
active = 2
active = 2
active = 2

I just ran it again, and now this happened:
active = 2
active = 2
active = 2
active = 4
...
active = 4
active = 2 <-- ?
active = 2

So, I'll just close this for now (cc @NymanLauri)


Implement squeeze masking rule

This PR implements a masking rule for lax.squeeze.
Why?
lax.matmul calls lax.squeeze:
https://github.com/google/jax/blob/655a3e79c23060e87595d4a52dc595352fa29c9b/jax/_src/numpy/lax_numpy.py#L4212-L4213
... which was throwing an error when multiplying masked matrices a and b shaped like:
a.polymorphic_shape = (1, 12, 1, n + 1)
b.polymorphic_shape = (1, 12, n + 1, 64)

A few other useful masking rules are missing too, like broadcast_in_dims and einsum. I could create a more comprehensive PR to implement all of these, or just submit PRs for each of them separately.
I got mask() working with my GPT sampling loop — it’s great!

Interestingly, masking was part of the original motivation for the lax.squeeze() primitive, but note that the implementation of mask is currently being revisited: https://github.com/google/jax/issues/5000#issuecomment-757354298
Given the current status, I'm not sure if we want accept these sort of PRs.

Thanks! But we deleted mask, so this PR is definitely stale. Closing!


Style guide based on cg-style

For issue https://github.com/18F/identity-private/issues/1881
This PR attempts to override the existing style guide with a clone of cg-style. This does not yet work with the PR subitted to identity-site (https://github.com/18F/identity-site/pull/121). The css output needs to match what identity-site is expecting.
:eyes: PREVIEW 👀
WIthin the app, there are several statuses used. The important ones to note are:
Red: This can be reviewed by Brian Hurst
Yellow: To be reviewed by someone else other than me
Green: Has been reviewed, done
Gray: I'm still working on this one
@jeanninehunter @esgoodman  would love to get your feedback on what to put in the style guide docs here:
https://federalist-proxy.app.cloud.gov/preview/18f/identity-style-guide/clone-cloudgov/index.html
Other fractal guides, for reference:

Cloud.gov
USWDS
FEC

Documentation on getting the site up and running locally:
https://github.com/18F/identity-style-guide/blob/clone-cloudgov/CONTRIBUTING.md#setup

@hursey013 cool. Thanks for the review. I'll try to get to those changes tomorrow! And bump the version up in the process!

@hursey013 made the changes and I think this is ready for review!

LGTM! Thanks for all the clean up!

Merged!


Github Team doesn't work as a group

I have a github team that I'm trying to automatically request reviews by all team members, for all team members.
Ex: team-1 consists of [dev1, dev2, dev3]. If dev2 submits a PR, I want dev1 and dev3 to be requested automatically. However, only the following seems to work:
reviewers:
  groups:
    group-1
      - dev1
      - dev2
      - dev3

  per_author:
    group-1
      - team:team-1

I would have expected this to work, too:
reviewers:
  groups:
    group-1
      - team:team-1

  per_author:
    group-1
      - team:team-1

Setting enable_group_assignment: true doesn't work, either. Is there a way to do this that I'm missing?

Facing a similar issue. Here's my configuration file:
reviewers:
  groups:
    group1:
      - user1
      - user2

files:
  'somefiles/**':
    - group1
    - team:team1

options:
  number_of_reviewers: 2
  enable_group_assignment: true

When making changes to files inside somefiles/, I would expect the workflow to request a review from one member of group1 and one member of team1. In practice, it requests a review from one member of group1 as expected, but not from team2. The logs don't say anything about the team at all. I'm probably missing something but can't figure out what.

I'm using exactly the style of config in your second example, with these config options, and it works great!
options:
  enable_group_assignment: false
  ignore_draft: true
  ignored_keywords:
    - DO NOT REVIEW
    - WIP
  number_of_reviewers: 1


Update request

SDL 2.0.4 has been released, please consider packaging it.

May I second that? By now, we have 2.0.7 and it would be wonderful to have them available in your Launchpad repository. Many thanks!


would like numpy to add a hook when it allocates arrays

This issue may belong in another place but for tracking purposes I added it here.
It would be nice if numpy not only allocated on 32byte or 64byte boundaries, but did so in an official way (often leaving magic markers to the memory just behind the original pointer) that could be hooked.
This would allow a new array memory allocator to hook how numpy arrays are allocated offering features such as array recycling or numa node allocations.
In the future it could be used to allocate arrays that span multiple computers.

numpy/numpy#17467

Now has a PR numpy/numpy#17582, please check that it has the desired features.

The current API allows overriding alloc/calloc/free/realloc. Is there a reason to add memcpy overrides for host2obj, obj2obj, obj2host? Do you see a reason this would ever not be memcpy? I don't think GPU arrays are in scope at this time.


Translation is not used

My Setup

Operating System: Win10
App Version: 3.2.2
Installation type: rocketchat-setup-3.2.2.exe

[x] I have tested with the latest version
[x] I can simulate the issue easily

Description
The Interface translation is not working.
I have german at the OS and german at Rocket.Chat - the Electron Interface stays english all the time.
The Shortcuts are translated for some reason.

Current Behavior
The Electron App Interface is in english.
Expected Behavior
The Electron App Interface should be the same as the OS.

Please test if the problem persists with our latest release. I will be closing the issue but if there is any problem yet, we will open it again.

this is 3.8.7 at windows, still the same problem
basically translations are completly broken even they exist at the repository
for example "Server list" from the screenshot https://github.com/RocketChat/Rocket.Chat.Electron/blob/master/src/i18n/de-DE.i18n.json#L113

@CvH thanks for replying. I will take a look at what is happening.

Version 3.8.13, same problem.

Version 3.8.13, same problem.

This was to be fixed on the 3.8.13. The translations was lacking some items.
Do you have this problem in other computers or just this one?

It happens at two different pc with completely different setup (Win11) (1x domain, 1x home pc) with the identical problem.
Removed RC + Appdata and reinstalled it again. Same problem at latest.

Same problem with 3.8.15

nearly 2 years later, same general problem still exist at the latest 3.9.14 :(

great 👍 I test as soon there is a build available

tested with 4.0.1 at different machines (clean install etc) but still the same issue


write tests

Mocha with
https://github.com/jehy/telegram-test-api

https://github.com/jehy/telegram-test-api#readme


I'm expecting to see them like this:
2020-09-22 12:24:30.390403 I [98415:puma threadpool 001] {user_id: ?, subdomain: , uuid: d7b8b167-621c-4482-9a3c-6c3e0385d077, user_agent: curl/7.64.1} ....

I can make this kind of work by modifying the engine.rb file like so:
        if defined?(Rails::Rack::Logger)
          config.middleware.swap(Rails::Rack::Logger, RailsSemanticLogger::Rack::Logger, config.log_tags)
        end

Which kind of works..... I get my tagged logs, but logging is slightly different.
[...] Rack -- Started -- { :method => "GET", :path => "/api", :ip => "::1" }
[...] Rails -- Processing by StaticPagesController#index as */*
[...] Rails --   Parameters: {"path"=>"api"}
...

Whereas with no code changes I'd get
[...] Rails -- Started GET "/api" for ::1 at 2020-09-22 12:28:53 -0400
[...] Rails -- Processing by StaticPagesController#index as */*
[...]  Rails --   Parameters: {"path"=>"api"}
...

It's pretty much the exact same messaging other than the "started" message for the request which now seems to be handled via Rack instead of Rails.
Since swapping out the middleware makes tagged logging work but changes the "started" messaging I'm wondering if we are connecting to the correct notification/instrumentation. I'm not 100% sure where the disconnect is.
My end goal is to provide all the niceties that SemanticLogger providers without using the semantic featured enabled, but also have tagged logging enabled.  We are finding with semantic mode enabled it's harder to quickly parse the logs.

Have you considered using the Semantic Logger gem directly without using the horrible hacks that make up Rails Semantic Logger?

Actually, that is what I would expect since Rails natively does not support hash / named tags. By turning off rails semantic logger the hash/named tags feature is also removed.


Upgrade to bootstrap 4

supersedes https://github.com/simplabs/ember-simple-auth/pull/1579

Argh, I think ember-bootstrap 1.2 doesn't support Ember 1.12 anymore and since we do we can't upgrade…

I had seen this was failing, but didn't get a chance to see why. So I'll roll back ember-bootstrap?

yes, sadly we have to 😞

This looks good locally, I think we could also add color utility classes to the login button on the /login form as well

I think adding some color / border to the login button would also be useful to still make it recognizable as a form element:


Remove dead SystemLabelMarker struct

This struct had no internal use, docs, or intuitable external use.
It has been removed.

bors r+


fix #65: add all fields of job log in json format to supercronic log fields

I'd fee pretty strongly that Supercronic shouldn't attempt to parse the logs produced by the programs it runs — this is a recipe for surprises when your logging format changes and now suddenly your logs are all mangled because Supercronic cannot read them anymore. I sent a PR last week to address this general class of problem — you can now add -passthrough-logs to your Supercronic arguments to request that Supercronic leave your logging alone.

Great!  I'll try this new feature when I have the time. Thanks a lot.


Update sbt to 1.5.8

Updates org.scala-sbt:sbt from 1.5.7 to 1.5.8.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-sbt", artifactId = "sbt" } ]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Codecov Report

Merging #17 (f82abb9) into main (688ed8a) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #17   +/-   ##
=======================================
  Coverage   46.62%   46.62%
=======================================
  Files           5        5
  Lines         326      326
  Branches        7        7
=======================================
  Hits          152      152
  Misses        174      174

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 688ed8a...f82abb9. Read the comment docs.


Authorization code cannot be found in the store

We currently have Identity Server and an MVC application hosted in Azure using the HybridClientCredentials flow. We are occasionally getting a 500 response from the POST to signin-oidc after logging in.  Looking at the logs it seems that when the MVC app is trying to swap the authorization code for the access token, the request to the token endpoint is returning a 400 Bad Request.  What is strange is that this seems to be random.  Sometimes it works, sometimes we get this error.
It sounds similar to this issue because we are using InMemory storage, but we are only running one instance of Identity Server
https://github.com/IdentityServer/IdentityServer4/issues/340
Also this seems to work 100% of the time running on a local environment. It's only occurring once we deploy to Azure.  Do you have any ideas that might point us in the right direction?
The error logged by our MVC app.
2017-01-24 18:03:51.875 +00:00 [Debug] Updating configuration
2017-01-24 18:03:51.891 +00:00 [Debug] Received 'id_token'
2017-01-24 18:03:52.266 +00:00 [Debug] Redeeming code for tokens.
2017-01-24 18:03:52.562 +00:00 [Error] Exception occurred while processing message.
System.Net.Http.HttpRequestException: Response status code does not indicate success: 400 (Bad Request).
at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
at Microsoft.AspNetCore.Authentication.OpenIdConnect.OpenIdConnectHandler.d__21.MoveNext()
The error logged by Identity Server.
2017-01-24 18:07:39.808 +00:00 [Debug] Start token request validation
2017-01-24 18:07:39.838 +00:00 [Debug] Start validation of authorization code token request
2017-01-24 18:07:39.851 +00:00 [Error] Authorization code cannot be found in the store: "4a201bc574d46cd1ad4a45beb643be5b152a6529d16769b96d042cda726a9939"
2017-01-24 18:07:39.868 +00:00 [Error] "{
"ClientId": "ContentSiteAdminMvc",
"GrantType": "authorization_code",
"AuthorizationCode": "4a201bc574d46cd1ad4a45beb643be5b152a6529d16769b96d042cda726a9939",
"Raw": {
"client_id": "ContentSiteAdminMvc",
"client_secret": "SomeSecretString",
"code": "4a201bc574d46cd1ad4a45beb643be5b152a6529d16769b96d042cda726a9939",
"grant_type": "authorization_code",
"redirect_uri": "https://somewebsite/signin-oidc\"
}
}"

any more infos?

Same error message: Authorization code cannot be found in the store
IdServer settings:
services.AddIdentityServer()
                .AddTemporarySigningCredential()
                .AddInMemoryIdentityResources(Config.GetIdentityResources())
                .AddInMemoryApiResources(Config.GetApiResources())
                .AddInMemoryClients(Config.GetClients())
		.AddInMemoryCaching()
		.AddInMemoryPersistedGrants()
                .AddTestUsers(Config.GetUsers());

I've add the following code:
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions
			{
				AuthenticationScheme = "oidc",
				SignInScheme = "Cookies",

				Authority = "http://localhost:5000",
				RequireHttpsMetadata = false,

				ClientId = "mvc",
				ClientSecret = "secret",

				ResponseType = "code id_token",
				Scope = { "api1", "offline_access" },

				GetClaimsFromUserInfoEndpoint = false,
				SaveTokens = true,

				Events = new OpenIdConnectEvents()
				{
					OnAuthorizationCodeReceived = async n => await OnAuthorizationCodeReceivedSettings(n)
				}

			});

Especially this part:
private async Task OnAuthorizationCodeReceivedSettings(AuthorizationCodeReceivedContext n)
		{
			var disco = await DiscoveryClient.GetAsync("http://localhost:5000");
			if (disco.IsError) throw new Exception(disco.Error);

			var tokenClient = new TokenClient(disco.TokenEndpoint, "mvc", "secret");
			var refreshResponse =
				await tokenClient.RequestAuthorizationCodeAsync(n.ProtocolMessage.Code, "http://localhost:5002/signin-oidc");

			var expiresIn = refreshResponse.ExpiresIn;

			n.Properties.ExpiresUtc = DateTime.UtcNow.AddSeconds(expiresIn);
			n.Properties.IsPersistent = true;
			n.Properties.AllowRefresh = false;
			n.Properties.IssuedUtc = DateTimeOffset.UtcNow;
		}

Same error with EntityFramework - database store:
[09:37:39 ERR] IdentityServer4.Validation.TokenRequestValidator
Authorization code cannot be found in the store: 573e1b3e7afb554a91ae7e0991577ed
c1fd0c8dda601f0b14a0c380ba1c09906

[09:37:39 ERR] IdentityServer4.Validation.TokenRequestValidator
{
  "ClientId": "mvc",
  "ClientName": "MVC Hybrid",
  "GrantType": "authorization_code",
  "AuthorizationCode": "573e1b3e7afb554a91ae7e0991577edc1fd0c8dda601f0b14a0c380b
a1c09906",
  "Raw": {
    "client_id": "mvc",
    "client_secret": "secret",
    "code": "573e1b3e7afb554a91ae7e0991577edc1fd0c8dda601f0b14a0c380ba1c09906",
    "grant_type": "authorization_code",
    "redirect_uri": "http://localhost:5002/signin-oidc"
  }
}

[09:37:39 VRB] IdentityServer4.Hosting.IdentityServerMiddleware
Invoking result: IdentityServer4.Endpoints.Results.TokenErrorResult

In my case, we had more than one instance of our MVC app running in Azure.  Switching this to a single instance seemed to resolve the issue for now.

I have only one instance of MVC app.

services.AddIdentityServer()
.AddTemporarySigningCredential()
.AddInMemoryIdentityResources(Config.GetIdentityResources())
.AddInMemoryApiResources(Config.GetApiResources())
.AddInMemoryClients(Config.GetClients())
.AddTestUsers(Config.GetUsers());

You need to configure something for the persisted grants store: https://github.com/IdentityServer/IdentityServer4/blob/dev/src/IdentityServer4/Stores/IPersistedGrantStore.cs
This is one implementation: https://github.com/IdentityServer/IdentityServer4.EntityFramework/blob/dev/src/IdentityServer4.EntityFramework/Stores/PersistedGrantStore.cs

Yes, I have tried the InMemory and EntityFramework version of storing the persistant grants and I get the some error both.

I have tried debug more and I've discovered that here:
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions
			{
				.......
				Events = new OpenIdConnectEvents()
				{
					OnAuthorizationCodeReceived = async n => await OnAuthorizationCodeReceivedSettings(n)
				}
			});

private async Task OnAuthorizationCodeReceivedSettings(AuthorizationCodeReceivedContext n)
		{
			var disco = await DiscoveryClient.GetAsync("http://localhost:5000");
			if (disco.IsError) throw new Exception(disco.Error);

			var tokenClient = new TokenClient(disco.TokenEndpoint, "mvc", "secret");
			var refreshResponse = await tokenClient.RequestAuthorizationCodeAsync(n.ProtocolMessage.Code, "http://localhost:5002/signin-oidc");
			var expiresIn = refreshResponse.ExpiresIn;
			n.Properties.ExpiresUtc = DateTime.UtcNow.AddSeconds(expiresIn);
			n.Properties.IsPersistent = true;
			n.Properties.AllowRefresh = false;
			n.Properties.IssuedUtc = DateTimeOffset.UtcNow;
		}

If I create the request using the code tokenClient.RequestAuthorizationCodeAsync(n.ProtocolMessage.Code, ".."); the authorization_code is removed from database at this time.
How can I modify that? :)

This is by design - authorization codes are one time only tokens.
You don't need to do that manually in asp.net core - it is done already by the middleware.

You are right. I've tried this because I want to set the cookie expiration time according the access token expiration time not according the id_token.
Any idea for doing that? :)

I solved this issue like this:
app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions
			{
				....
				GetClaimsFromUserInfoEndpoint = false,
				SaveTokens = true,
				UseTokenLifetime = false,

				Events = new OpenIdConnectEvents()
				{
					OnAuthorizationCodeReceived = async n => await OnAuthorizationCodeReceivedSettings(n),
					OnTicketReceived = n => OnTicketReceived(n)
				}

			});

private Task OnTicketReceived(TicketReceivedContext n)
		{
			var accessTokenExpiresAt = n.Properties.Items[".Token.expires_at"];
			n.Properties.ExpiresUtc = DateTimeOffset.Parse(accessTokenExpiresAt);

			return Task.FromResult(0);
		}

Thank you for your help. :)


Error in Native with Sentry 6

Hello @maciejwalkowiak,
We've got an exception in native when updating to recent Sentry (From 5.x to 6.x):
Error: Error parsing reflection configuration in jar:file:/project/lib/io.sentry.sentry-6.1.4.jar!/META-INF/native-image/io.sentry/sentry/reflect-config.json:
Method io.sentry.protocol.SdkVersion.<init>() not found. To allow unresolvable reflection configuration, use option --allow-incomplete-classpath
Verify that the configuration matches the schema described in the -H:PrintFlags=+ output for option ReflectionConfigurationResources.
com.oracle.svm.core.util.UserError$UserException: Error parsing reflection configuration in jar:file:/project/lib/io.sentry.sentry-6.1.4.jar!/META-INF/native-image/io.sentry/sentry/reflect-config.json:
Method io.sentry.protocol.SdkVersion.<init>() not found. To allow unresolvable reflection configuration, use option --allow-incomplete-classpath

https://github.com/quarkusio/registry.quarkus.io/pull/113
Any idea?

cc @gastaldi

Maybe the fact that SdkVersion doesn't have default constructor?

It's really weird this error is happening randomly (not on all CI runs)

@gsmet @geoand any thoughts?

Maybe the fact that SdkVersion doesn't have default constructor?

The class likely needs to be registered for reflection

Maybe the fact that SdkVersion doesn't have default constructor?

The class likely needs to be registered for reflection

https://github.com/getsentry/sentry-java/blob/main/sentry/src/main/resources/META-INF/native-image/io.sentry/sentry/reflect-config.json#L94
it is

What does the class look like?

The problem is that it registers specifically a no-args constructor which has been replaced here:
https://github.com/getsentry/sentry-java/commit/f8332e8825e2dfc4c14fd6cd83e1a08151d0f495#diff-f60a611c8c3586d27bd4918b09d6cd0156f4f8337765e3b6c2cf5a424ab92317R59
and then dropped.
The reflection config needs to be updated to point to the new constructor (or the class to be registered globally without being so specific).

Which just goes to show you why the json based GraalVM configuration is very brittle

I've created an upstream issue, thanks guys!

@ia3andy thanks for pinging and I am sorry for an issue. I don't work actively anymore on Sentry SDK. Please mention @adinauer in the future.

It's really weird this error is happening randomly (not on all CI runs):

Passed: https://github.com/quarkiverse/quarkus-logging-sentry/runs/7226494893?check_suite_focus=true
Failed: https://github.com/quarkiverse/quarkus-logging-sentry/runs/7085309690?check_suite_focus=true
Failed: https://github.com/quarkiverse/quarkus-logging-sentry/runs/6786456191?check_suite_focus=true

It started failing for Sentry 6.0

That's because they update different dependencies, the ones updating Sentry always fails

ok it's fixed with 6.3.0, I will release today.


Update argonaut to 6.3.8

About this PR
📦 Updates io.argonaut:argonaut from 6.2.6 to 6.3.8
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "io.argonaut", artifactId = "argonaut" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "io.argonaut", artifactId = "argonaut" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #534.


[Identity] Assets to test/public, to fix min max tests

Packages impacted by this PR:

Azure Identity.

Describe the problem that is addressed by this PR:
We’re seeing min max tests fail for Identity on our nightly CI pipelines. After debugging this, Karishma spotted that our tests were unable to find the fake certificate. This PR moves the fake certificate from ./assets to ./test/public/assets, making it possible for the min-max code to copy that path together with the public tests.

It makes the lives tests fail with AuthenticationRequiredError - https://dev.azure.com/azure-sdk/internal/_build/results?buildId=1291091&view=logs&j=85868684-9efd-59be-28df-cf947a6afe61&t=eb340d62-0e69-5acc-7783-797aab31d523
We may need to debug this more


Make 12.5+ custom resources whyrun-safe by default

i could have sworn they were this way from the start  👍

@marcparadise This will only affect the 12.5-style fused syntax, most of which are written using Chef's core resources which are generally why-run safe.

yeah "custom resources" != "LWRPs"
and generally we beat on people about how to properly write resources that it makes more sense to mark even LWRPs as why-run safe by default -- but probably not until chef 13.

@marcparadise yes, this won't affect LWRPs that declare actions in providers/blah.rb or HWRPs that do class Blah < Chef::Provider. Only resources.

Okay, makes sense - thanks for the clarification.


Option to change the default div

Proposal for the problem https://github.com/caike/jQuery-Simple-Timer/issues/35

Great idea! Thank you for your contribution 👍


HTML5, canvas: focused TextField steals focus when clicking outside the canvas

Using OpenFL. If I set focus on a TextField and then click on a text input in another part of the page external to the OpenFL canvas, the TextField will steal focus back almost immediately. If I first click outside the TextField but within the OpenFL canvas to remove focus from the TextField, and then click on the external text input, this doesn't happen.
Commenting out this line in HTML5Window.hx seems to prevent the focus stealing:
private function handleFocusEvent (event:FocusEvent):Void {
    if (enableTextEvents) {
        //Timer.delay (function () { textInput.focus (); }, 20);
    }
}

...but this preserves a flashing cursor in the textbox after it loses focus.
This happens in Chrome, Firefox and Safari; additionally, in Firefox clicking anywhere while a TextField has focus will cause the page will jump back up to the OpenFL canvas if you've scrolled away from it.

I'd like to know if focus has gone inside or outside of our parent element in order to handle the behavior, but focus, blur (which don't bubble, which makes sense) and focusin, focusout (which is supposed to bubble) don't appear to work, listening only to element.
For now, I've tried to make a solution that tries to preserve the same behavior (where a related DOM element that steals focus which is not intended to halt text input) while making it allow focus to go to unrelated elements. We might have to go so far as making every DOM element that's related have focus/blur events (to make this more elegant), but I hope not


Using hibernate-jpa-2.1-api:1.0.0 instead of jakarta-persistence-api:2.2.3

I've included this dependency into my project and noticed errors in my code, as for example the
javax.persistence.Query.getResultStream() method was not found anymore.
It seems this dependency is using an old Hibernate JPA dependency from 2013!!
https://mvnrepository.com/artifact/org.hibernate.javax.persistence/hibernate-jpa-2.1-api
I'm not familiar with hibernate-jpa, but maybe you can simply switch to the jakarta dependencies instead or at least set the scope of that dependency to "provided"?

For the record, https://github.com/jOOQ/jOOQ/issues/9641 has been implemented in jOOQ 3.16 and will ship soon (by the end of 2021, hopefully). After that, we'll have only Jakarta dependencies, no javax dependencies from the deprecated Java EE APIs anymore.

@lukaseder sry for my late response, I completely forgot about it and stopped trying to get it working. Glad to hear


add class to ground so i can put shadows on it

All the extra changes are just from my editor removing line endings

thanks Vim!


Please publish at Flathub

Hi,
EpubReader is so good looking software, it should be available to all Linux users, .deb only works with debian based distros. Please publish it at https://flathub.org/
https://flathub.org/setup
Here's a sample flatpak manifest, which does not work. I don't know how to package electron apps. but this may help you.
# io.github.mignaway.EpubReader
app-id: io.github.mignaway.EpubReader
base: org.electronjs.Electron2.BaseApp
base-version: '23.08'
runtime: org.freedesktop.Platform
runtime-version: '23.08'
sdk: org.freedesktop.Sdk
sdk-extensions:
  - org.freedesktop.Sdk.Extension.node18
command: run.sh
separate-locales: false
finish-args:
  - --share=ipc
  - --socket=x11
  - --socket=pulseaudio
  - --share=network
build-options:
  append-path: /usr/lib/sdk/node18/bin
  env:
    NPM_CONFIG_LOGLEVEL: info
modules:
  - name: electron-sample-app
    buildsystem: simple
    build-options:
      env:
        XDG_CACHE_HOME: /run/build/electron-sample-app/flatpak-node/cache
        npm_config_cache: /run/build/electron-sample-app/flatpak-node/npm-cache
        npm_config_offline: 'true'
    build-commands:
      # Install npm dependencies
      - npm install --offline
      # Build the app; in this example the `dist` script
      # in package.json runs electron-builder
      - |
        . ../flatpak-node/electron-builder-arch-args.sh
        npm run dist -- $ELECTRON_BUILDER_ARCH_ARGS  --linux --dir
      # Bundle app and dependencies
      - cp -a dist/linux*unpacked /app/main
      # Install app wrapper
      - install -Dm755 -t /app/bin/ ../run.sh
    subdir: main
    sources:
      - type: archive
        url: https://github.com/mignaway/EpubReader/archive/refs/tags/v1.0.5.tar.gz
        sha256: db951ca3860576e8810343b145009ccd3b5719185517b227950bb3caa27bbc9c
#      - type: dir
#        path: ..
#        dest: main
#      - generated-sources.json
#      # Wrapper to launch the app
      - type: script
        dest-filename: run.sh
        commands:
          - zypak-wrapper.sh /app/main/electron-sample-app "$@"

thank you.

I no longer have much time to devote to the application and I am quite ignorant about linux distributions and the various "stores". Since the project is meant to be open-source, assuming I get credit for it, if someone is able to publish it they can quietly do so, at the moment I wouldn't know where to put my hands

@mignaway Sure, I'll try to publish it on flathub.
But, please help me by showing how to install from sources, and what are the dependencies to install.

Working build files:
io.github.mignaway.EpubReader.zip
AppStream metadata should be added

@faveoled
https://github.com/johnfactotum/foliate/blob/gtk4/data/com.github.johnfactotum.Foliate.metainfo.xml.in
I can convert the above for EpubReader,  and publish at flathub.

Yeah, it'd be nice


python37Packages.sniffio: 1.0.0 -> 1.1.0

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/python3.7-sniffio/versions.
meta.description for python37Packages.sniffio is: '"Sniff out which async library your code is running under"'.
meta.homepage for python37Packages.sniffio is: '"https://github.com/python-trio/sniffio"

Checks done (click to expand)

built on NixOS
/bin/sh passed the binary check.
1 of 1 passed binary check by having a zero exit code.
0 of 1 passed binary check by having the new version present in output.
found 1.1.0 with grep in /nix/store/bx5hzc0h8813xpbxvg522dz16k1zc2g6-python3.7-sniffio-1.1.0
directory tree listing: https://gist.github.com/9a3a511698a63fe18e658e794d1fd5e4
du listing: https://gist.github.com/26a12c8b9087b011d81b8fbf1813e93c

Rebuild report (if merged into master) (click to expand)

36 total rebuild path(s)
9 package rebuild(s)
9 x86_64-linux rebuild(s)
9 i686-linux rebuild(s)
9 x86_64-darwin rebuild(s)
9 aarch64-linux rebuild(s)
First fifty rebuilds by attrpath
python37Packages.azure-mgmt-common
python37Packages.azure-mgmt-compute
python37Packages.azure-mgmt-network
python37Packages.azure-mgmt-resource
python37Packages.azure-mgmt-storage
python37Packages.msrest
python37Packages.msrestazure
python37Packages.sniffio
python37Packages.trio

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/bx5hzc0h8813xpbxvg522dz16k1zc2g6-python3.7-sniffio-1.1.0 \
  --option binary-caches 'https://cache.nixos.org/ https://r-ryantm.cachix.org/' \
  --option trusted-public-keys '
  r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(r-ryantm's Cachix cache is only trusted for this store-path realization.)
Or, build yourself:
nix-build -A python37Packages.sniffio https://github.com/r-ryantm/nixpkgs/archive/338067e093a497266a7747e2927d17e932c49453.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/bx5hzc0h8813xpbxvg522dz16k1zc2g6-python3.7-sniffio-1.1.0
ls -la /nix/store/bx5hzc0h8813xpbxvg522dz16k1zc2g6-python3.7-sniffio-1.1.0/bin

@GrahamcOfBorg build python3Packages.sniffio python3Packages.curio


build nodejs + express + react + mySQL env

https://www.bezkoder.com/react-node-express-mysql/

https://expressjs.com/

https://sequelize.org/

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

Is there any issue that I can work on this repo, if you elaborate the issue, or even assign a task to be done, I can contribute. Please let me know.


chore: collectForwardDeps returns only free variables, not metavars

This PR removes some unreachable code that acts as if collectForwardDeps could return metavariables. This confusing code was first added in commit 50ae170. And then to explain this, in #1625 it was explicitly documented that collectForwardDeps could return metavariables.
So I removed the metavariable handling in the functions that are only run on the result of collectForwardDeps.
It may also be a bug that no metavariables can reach this code, but in that case there should be a TODO.

I’ll leave others to review this (but looks good if it’s really dead code). Could you maybe leave assert! x.isVar statements in place, so that the next time someone reads the code they benefit from your findings, and we notices when they are violated?

Ok, I've added assert! toRevert.all (·.isFVar) for the result of collectForwardDeps, which is the the array passed to the other functions. (although I don't this this is reaally necessary, since otherwise there would be a panic from Expr.fvarId!)


Issue 133

changed fetch_licences function, so that it returns a string, instead of a list, to solve #133.
However, there are two datasets, which have two licences attached to them. These two licences are combined in one string, separated by ", ". A decision on how to treat this case is needed, since currently the tidy_licence function in merge_data.py expects the input string to only contain one licence.
The case that a dataset can contain data with two different licences seems valid, even though it had been better to separate the data based on the licence, which we cannot influence.
A merge of the current PR would be possible, to solve the more severe bug mentioned in #133, and deal with the two datasets in question later on.

@nutcracker22 thanks for working on this, I have some requests please:

could you remove changes in merge_data.py in this PR please as is not related to issue 133. #133 applies to the NLS scraper only.
Suggested solution for treating multiple licences: I say let's retain only the 1st named licence in the array. It's not a complete solution but it is good enough for now. In future we may build capability to handle multiple licences but we do not have it yet.

@KarenJewell I addressed both requests, I hope. For your suggested solution I just used the code you had pushed in PR #128. I think it is fine for the time being and ready to merge.
And the risk involved in this approach we can mitigate later on, since you are right that it affects only two datasets.


Logs inundated with ehlo healthcheck

It is nearly impossible to use the logs to find anything because every 30 seconds the ehlo healthcheck is logged at INFO level:
gmail-relay_1  | 2021-05-24T21:02:17.979094-04:00 INFO    postfix/smtpd[27020]: connect from localhost[<IP_ADDRESS>]
gmail-relay_1  | 2021-05-24T21:02:17.979120-04:00 INFO    postfix/smtpd[27020]: smtp_stream_setup: maxtime=300 enable_deadline=0
gmail-relay_1  | 2021-05-24T21:02:17.979137-04:00 INFO    postfix/smtpd[27020]: match_hostname: smtpd_client_event_limit_exceptions: localhost ~? <IP_ADDRESS>/8
gmail-relay_1  | 2021-05-24T21:02:17.979144-04:00 INFO    postfix/smtpd[27020]: match_hostaddr: smtpd_client_event_limit_exceptions: <IP_ADDRESS> ~? <IP_ADDRESS>/8
gmail-relay_1  | 2021-05-24T21:02:17.979155-04:00 INFO    postfix/smtpd[27020]: > localhost[<IP_ADDRESS>]: 220 6180d6d78afb ESMTP Postfix
gmail-relay_1  | 2021-05-24T21:02:17.979189-04:00 INFO    postfix/smtpd[27020]: watchdog_pat: 0x7f6e69702f20
gmail-relay_1  | 2021-05-24T21:02:17.980647-04:00 INFO    postfix/smtpd[27020]: < localhost[<IP_ADDRESS>]: EHLO healthcheck
gmail-relay_1  | 2021-05-24T21:02:17.980678-04:00 INFO    postfix/smtpd[27020]: match_list_match: localhost: no match
gmail-relay_1  | 2021-05-24T21:02:17.980684-04:00 INFO    postfix/smtpd[27020]: match_list_match: <IP_ADDRESS>: no match
gmail-relay_1  | 2021-05-24T21:02:17.980692-04:00 INFO    postfix/smtpd[27020]: > localhost[<IP_ADDRESS>]: 250-6180d6d78afb
gmail-relay_1  | 2021-05-24T21:02:17.980700-04:00 INFO    postfix/smtpd[27020]: > localhost[<IP_ADDRESS>]: 250-PIPELINING
gmail-relay_1  | 2021-05-24T21:02:17.980706-04:00 INFO    postfix/smtpd[27020]: > localhost[<IP_ADDRESS>]: 250-SIZE
gmail-relay_1  | 2021-05-24T21:02:17.980713-04:00 INFO    postfix/smtpd[27020]: > localhost[<IP_ADDRESS>]: 250-VRFY
gmail-relay_1  | 2021-05-24T21:02:17.980719-04:00 INFO    postfix/smtpd[27020]: > localhost[<IP_ADDRESS>]: 250-ETRN
gmail-relay_1  | 2021-05-24T21:02:17.980731-04:00 INFO    postfix/smtpd[27020]: > localhost[<IP_ADDRESS>]: 250-ENHANCEDSTATUSCODES
gmail-relay_1  | 2021-05-24T21:02:17.980738-04:00 INFO    postfix/smtpd[27020]: > localhost[<IP_ADDRESS>]: 250-8BITMIME
gmail-relay_1  | 2021-05-24T21:02:17.980746-04:00 INFO    postfix/smtpd[27020]: > localhost[<IP_ADDRESS>]: 250-DSN
gmail-relay_1  | 2021-05-24T21:02:17.981156-04:00 INFO    postfix/smtpd[27020]: > localhost[<IP_ADDRESS>]: 250 CHUNKING
gmail-relay_1  | 2021-05-24T21:02:17.981183-04:00 INFO    postfix/smtpd[27020]: watchdog_pat: 0x7f6e69702f20
gmail-relay_1  | 2021-05-24T21:02:17.982017-04:00 INFO    postfix/smtpd[27020]: smtp_get: EOF
gmail-relay_1  | 2021-05-24T21:02:17.982030-04:00 INFO    postfix/smtpd[27020]: match_hostname: smtpd_client_event_limit_exceptions: localhost ~? <IP_ADDRESS>/8
gmail-relay_1  | 2021-05-24T21:02:17.982036-04:00 INFO    postfix/smtpd[27020]: match_hostaddr: smtpd_client_event_limit_exceptions: <IP_ADDRESS> ~? <IP_ADDRESS>/8
gmail-relay_1  | 2021-05-24T21:02:17.982046-04:00 INFO    postfix/smtpd[27020]: lost connection after EHLO from localhost[<IP_ADDRESS>]
gmail-relay_1  | 2021-05-24T21:02:17.982056-04:00 INFO    postfix/smtpd[27020]: disconnect from localhost[<IP_ADDRESS>] ehlo=1 commands=1

The log also grows at massive rates as a result.
I think a few things can be done to improve this:

Don't log healthcheck to stdout

Perhaps change this to log to a file or with a different log level or only log to stderr when healthcheck fails.

Add logrotate cron job and optionally allow some settings for this to be set through env variables or a mapped logrotate.d config file.

Dear @LeorGreenberger:
If there is a way to omit logging of healtchecks, I have not found it yet. If you do know a way, please share your code. Patches are welcome.
If you would like to log to a file, there's already a possibility for that: POSTFIX_maillog_file: "/var/log/mail.log". You can then use another container to do logrotate -- I believe that's outside of the scope of this project.

Thank you for the quick response! I will investigate if we can omit logging of healthchecks. I saw there is an option to log to a file. If I use this feature and then use another container to do logrotate, will it cause problems with docker-postfix trying to write to a file that has been rotated?

You can override/disable the image healthchecks when running a container.
The healthcheck arguments to docker run are:
--health-cmd            Command to run to check health
--health-interval       Time between running the check
--health-retries        Consecutive failures needed to report unhealthy
--health-timeout        Maximum time to allow one check to run
--health-start-period   Start period for the container to initialize before starting health-retries countdown
--no-healthcheck        Disable any container-specified HEALTHCHECK
If using docker compose :
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost"]
interval: 1m30s
timeout: 10s
retries: 3
start_period: 10s
To disable the healthcheck :
healthcheck:
disable: true
Reference : https://docs.docker.com/compose/compose-file/compose-file-v2/#healthcheck


DF-222: Redesign header navigation to be a hamburger menu on mobile

Hi @gtvj
Would you be able to look at this PR and merge if everything is OK?
It relates to this ticket: https://national-archives.atlassian.net/browse/DF-222
I've introduced a hamburger menu on mobile when the screen is below 768px.
It is a JS implementation, which works by:

Using HTML data- attributes to find the header <nav>, the navigation list <ul> and all the menu items that are not search, which are marked with data-isSearch=false.
Grabbing the global search button and the list item it is housed in.
Moving the global search button to the second item in the navigation list, in order for the design to work correctly (while preserving focus if relevant)
Inserting the hamburger menu list item/button into the navigation list
Using aria-expanded and aria-controls on the button for accessibility, and using the hidden attribute to show/hide all the menu items which aren't search.

I've used the debounce.js file from your blog for the resize listener, which I have also used.
This is the design it's based off of:

I've tested it on IE11, Chrome and Firefox
Thanks :+1:

I've noticed a strange visual presentation at exactly 768px

Hi @AshTNA - I've not been fully through the JavaScript yet but have made some general comments and noted a bug. It feels like the JavaScript is too closely coupled to HTML that is under editorial control (for example, editors need to add a 'search' menu item for the hamburger menu to appear. What I'm going to suggest is this:

Address the Sass comments above
Fix the 768px bug
Let's pair on decoupling JavaScript approach from the HTML (I have this nagging feeling that it might be possible to simplify that JavaScript and perhaps even leverage CSS grid to do some of the things we're doing with JavaScript)

I hope that all sounds OK - but let know if you'd like to discuss any of this 👍🏽

Thanks @gtvj - I can't see the SASS comments, would you be able to publish the review if it's still in draft?


drivers: add MAX20335 charger driver

Add a MAX20335 MFD subdriver for the built-in battery charger.

@rriveramcrus please take a look :)

Overall looks good, I have one last concern. I see indts/bindings/charger/maxim,max20335-charger.yaml you included battery.yaml but don't make use of the properties in there.
There are so many different spins of this chip with different reset values that I'm not really concerned with initialization, but it might be a good practice to clamp the maximum settable charge current/voltage.
An example:
A battery pack is rated for a battery regulation voltage of 4.20V and some bad code up in a task sets CHARGER_PROP_CONSTANT_CHARGE_VOLTAGE to 4.35V.
I would prefer the driver clamp the CHARGER_PROP_CONSTANT_CHARGE_VOLTAGE setter max value to the value of the constant-charge-voltage-max-microvolt property. If no value is provided, then we can just default to the full range. DT_INST_PROP_OR would be useful for picking up those values if they exist.

Overall looks good, I have one last concern. I see indts/bindings/charger/maxim,max20335-charger.yaml you included battery.yaml but don't make use of the properties in there.
There are so many different spins of this chip with different reset values that I'm not really concerned with initialization, but it might be a good practice to clamp the maximum settable charge current/voltage.
An example: A battery pack is rated for a battery regulation voltage of 4.20V and some bad code up in a task sets CHARGER_PROP_CONSTANT_CHARGE_VOLTAGE to 4.35V.
I would prefer the driver clamp the CHARGER_PROP_CONSTANT_CHARGE_VOLTAGE setter max value to the value of the constant-charge-voltage-max-microvolt property. If no value is provided, then we can just default to the full range. DT_INST_PROP_OR would be useful for picking up those values if they exist.

Added validation of the maximum constant charge voltage and current.

Added validation of the maximum constant charging voltage and current. I decided not to set the maximum values, IMO. user should pass the correct value once again.
That's cool with me.


CSS <> Lass <> Sass <> SCSS Converter

What's the Problem?
No response
Solution/Idea
The idea is to allow converting style sheets between the most widely known (Lass, Sass and SCSS) and pure CSS. Usually it's done at compile/interpret time via some watcher tool, but it's not good to do quick experiments.
Alternatives
The only one is Try It editor on W3C
Priorities

Capability
Priority

Allow change Less, Sass and SCSS to CSS
Must

Allow changing between Less, Sass and SCSS
Should

DevToys Version
Version: <IP_ADDRESS> | X64 | OS Version: 11.0.22000.438
Comments
No response

Hi,
This is a good idea for an extension, but I don't think it fits DevToys' default tools.
Thanks


Relative import?

I'm trying to figure out a way to do a node.js-style relative import, but loadModuleFn doesn't seem to be quite enough on its own. I can adjust the base directory before the import, but can't figure out how to restore it again after the module fiber runs. I need something to hook into there for sequential import statements to be rooted at the correct level. Any ideas?

I'm trying to figure out a way to do a node.js-style relative import, but loadModuleFn doesn't seem to be quite enough on its own.

Right, it's context free. You know the import string, but not where it appears.
This is sort of by design, though it may not ultimately be the right design. I like the idea of an import saying what you want to import more so than where you want to go from the current module to find it. Being context-free in that way makes it easier to rearrange files, support package managers, etc.
It's, more or less, how Java, C#, and C/C++ tend to work, if you wave your hands around include paths, classpaths, .cvproj files, etc.
But it can also be tedious and verbose in the presence of a lot of nesting, and it's not clear how the CLI should locate the "root" that absolute imports are imported relative from. (Right now, it's the directory where the main script appears, but that's not ideal.)
The import system in Wren is really rudimentary right now. I wanted to get enough in place to start experimenting. And, more important to me at the time, start playing with the actual runtime semantics of modules and scope. But it definitely needs a lot of work and probably a lot of experimentation.
One option to try might be to have a syntax that means "relative import". Perhaps a leading dot in the import string. Then, when the VM sees that, it prepends the containing module's path. Though, once we do that, we'll want to be able to back out of directories too. We'll likely end up with something like Python's syntax for relative imports.
I'm not sure if that's a good thing or a bad thing. What do you think?

Yeah, I had actually been thinking ./ for relative and bare to search a wren_modules folder, like node. The relative search doesn't currently work though. :(


Error try_load_from_hub could not find file

I'm on windows and one of the examples from the Documentation Load a prompt template from LangChainHub has the following code:
from langchain.prompts import load_prompt

prompt = load_prompt("lc://prompts/conversation/prompt.json")
prompt.format(history="", input="What is 1 + 1?")

Which in Windows produces the following error:
(venv) PS D:\Usuarios\Dev01\Documents\GitHub\almohada\chat> python prompts.py
Traceback (most recent call last):
  File "D:\Usuarios\Dev01\Documents\GitHub\almohada\chat\prompts.py", line 58, in <module>
    prompt = load_prompt("lc://prompts/conversation/prompt.json")
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\Usuarios\Dev01\Documents\GitHub\almohada\chat\venv\Lib\site-packages\langchain\prompts\loading.py", line 120, in load_prompt
    if hub_result := try_load_from_hub(
                     ^^^^^^^^^^^^^^^^^^
  File "D:\Usuarios\Dev01\Documents\GitHub\almohada\chat\venv\Lib\site-packages\langchain\utilities\loading.py", line 44, in try_load_from_hub
    raise ValueError(f"Could not find file at {full_url}")
ValueError: Could not find file at https://raw.githubusercontent.com/hwchase17/langchain-hub/master/prompts\conversation\prompt.json

This is caused by line 41 in utilities/loading.py
full_url = urljoin(URL_BASE.format(ref=ref), str(remote_path))

I have not tested this on another OS but in my mind the fix it's the following:
def try_load_from_hub(
    path: Union[str, Path],
    loader: Callable[[str], T],
    valid_prefix: str,
    valid_suffixes: Set[str],
    **kwargs: Any,
) -> Optional[T]:
    """Load configuration from hub.  Returns None if path is not a hub path."""
    if not isinstance(path, str) or not (match := HUB_PATH_RE.match(path)):
        return None
    ref, remote_path_str = match.groups()
    ref = ref[1:] if ref else DEFAULT_REF
    remote_path = Path(remote_path_str)
    if remote_path.parts[0] != valid_prefix:
        return None
    if remote_path.suffix[1:] not in valid_suffixes:
        raise ValueError("Unsupported file type.")

    full_url = urljoin(URL_BASE.format(ref=ref), remote_path_str) # here, instead of stringifying the remote_path just use the one extracted in the line above
    r = requests.get(full_url, timeout=5)
    if r.status_code != 200:
        raise ValueError(f"Could not find file at {full_url}")
    with tempfile.TemporaryDirectory() as tmpdirname:
        file = Path(tmpdirname) / remote_path.name
        with open(file, "wb") as f:
            f.write(r.content)
        return loader(str(file), **kwargs)

I'd like feedback on the solution, since I can't test in all evironments I'm not 100% sure about it

The Issue was fixed a long time ago


Remove unncecessary ndarray private methods

Just a code fix.

Jenkins, test this please

Jenkins CI test (for commit a6186d0f8fe1468b2a5b96b3df12ceb801c52242, target branch master) failed with status FAILURE.

Looks like several tests were affected

PTAL.

Jenkins, test this please

Jenkins CI test (for commit 79a8f4de1dbdc35f83adf0cb7956738f8a5d01f0, target branch master) succeeded!


uart_bitbang; allow configuration without RX.

Submitted by Brian WYLD.

The changes seem ok to me. Merging this.


Progress indication

I used dumber on my nokia n95 8gb. The process took much time and there are no any information about progress status (only empty screen). Also after program finished dumping it silently closed without any message. It is a bit confused - user don`t know is the dump in process or something has been wrong. What about show percent of completed during dumping and success message at the end?

Ah, Im in the progress of doing it. Also if it exits silently it means crashed:D


Fix ordering in README

Fix ordering in README
Thanks for the sql.Driver fix by the way. We did stumble onto this issue at work, and were quite disappointed the breaking change was refused, even though the value seemed pretty high!

Sorry @constantoine,
we use GitLab internally, and I only check GitHub from time to time.
Thank you for your contribution, and the kind words.


Windows Defender mplog logs

I am trying to interpret windows defender mplog log files and I can't find any information.  I'd really like to understand the meaning of lowfi sigs and some of the other entries.  Can you point me to some documentation on mplog log files?  Thank you!

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

ID: cee01291-d40e-ad66-32b6-3d04e1f41d9a
Version Independent ID: 4a069074-d372-0823-7a0c-a9692211094c
Content: Run and customize scheduled and on-demand scans
Content Source: windows/security/threat-protection/windows-defender-antivirus/customize-run-review-remediate-scans-windows-defender-antivirus.md
Product: w10
GitHub Login: @andreabichsel
Microsoft Alias: v-anbic

Thank you for your question! These are logs used internally for bug investigation, the details of which we can't publish publicly.


How to add layers to psd file ?

Hi, @thangnd2000! Sorry for a late answer... :-(
Aspose.Imaging for Python support only simple export images in PSD. It does not have any features for manipulate with PSD layers. But it is possible to create a miltipage TIFF image and than export it to PSD. Each page will be exported as a separated layer.

Thanks for the answer!


Jumpy on text input (Firefox on Android)

The start page is kind of jumpy in Firefox for Android when the search field gets focus. In Chrome it's fine.
https://user-images.githubusercontent.com/8180537/222553043-90a5301d-9d54-45e0-9feb-77f84e2e5a41.mp4

Cannot reproduce on my Android with Firefox.
It seems to zoom the whole page a bit.
@cabotine The search field should already have the focus when the page loads. Is that not the case for you?

I have the same stable Firefox version and unfortunately still can't reproduce the focus issue.
There is some strange zoom behavior though (when zooming in I can't zoom out completely anymore, unless the search results are shown). I don't think that fixing that would fix the focus issue, but it would certainly improve the behavior.
https://user-images.githubusercontent.com/1394828/223224839-d2a0dce3-b2fc-47d0-b99d-c394baae821f.mp4

I close this issue. I don't want this to become a rabbit whole. At least for now. In case this is a problem for other people too it will pop up again.
@cabotine Please add the kind of device and the OS and Browser version to this issue in case we need it as a reference in the future.


Support "reg-free" MyServer mode

Motivation: Want to support deployments where MyServer is running in a background service that is auto-started at system bootup.
Tasks:

Move TypeLib registration to MyServer startup, so that prior COM registration can be skipped.
Add AppID registration and register HKCR\AppID\{APPID}\RunAs = "Interactive User"
Call CoInitializeSecurity to allow non-elevated clients to connect. example

Tested configurations

Setup
Non-elevated client
Elevated client

Non-elevated server
TypeLib registration failure (can probably be worked around with RegisterTypeLibForUser)
N/A

Elevated server
CoGetClassObject failure: Class not registered (0x80040154)
Works nicely 👍

Background information
COM security

Activation (launch) security: https://learn.microsoft.com/en-us/windows/win32/com/turning-off-activation-security
Call security: Configured with CoInitializeSecurity RPC_C_AUTHN_LEVEL_NONE

Microsoft ATL reference impl
Extract from atlbase.h (with inlining of parameters):
CoRegisterClassObject(*pclsid, p, CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE | REGCLS_SUSPENDED, &pCache->dwRegister);
...
CoResumeClassObjects();

TypeLib registration
LoadTypeLibEx(tlbPath, REGKIND_REGISTER, ...) seem to fail silently if not running with admin privileges.
Links:

LoadTypeLibEx
RegisterTypeLib, RegisterTypeLibForUser

Links

https://learn.microsoft.com/en-us/windows/win32/com/the-com-elevation-moniker
CoRegisterClassObject
https://stackoverflow.com/questions/67296810/coregisterclassobject-acess-class-from-different-integrity-level-or-privileges
https://stackoverflow.com/questions/36955791/can-i-create-and-use-a-com-class-without-registering-it-in-the-registry

Support for manually started server processes was introduced in 775ed376df895924185386fe18901d3fa307d8de . I think that will be sufficient for this project.