Retrieve context, comments and reference via translate directive

Now in html we can write
<span translate translate-context="VERB" translate-comment="This is a title one">Title</span>
And then in generated .pot file:
# This is a title one
#: example/example.html
msgctxt "VERB"
msgid "Title"
msgstr ""
#37

Why this is not merged yet?? :cry:

Also when the same string is used multiple times, only one path is registered in the .pot file. Shouldn't all files be listed?

@picheli20 Apologies if this is an inappropriate place to ask, but would be great if you could clarify the following.
Let's say that I use the pipe:
{{ 'Home' | translate }}
How can I pass along/express context and comments there?
@felixpis made it clear how it works in the HTML tags, e.g.
Home

still no merge, please do something!

You can use forked version with added context and comment support. This version adds file path to the item in .po file also.
https://www.npmjs.com/package/@shavenzov/ngx-translate-extract

Hello, any reason why this is not merged yet? Any workarounds available?


Clippy and Rustfmt run

We now pass bool by value
added a Default impl on openstreetmap

bors r+


Rebuild npm syncing

Picks up from #4148 and https://github.com/gratipay/gratipay.com/issues/4427#issuecomment-298855735. Part of #4427.
We managed to load up a snapshot of npm back on #4148, but only barely enough to show stubby pages. Now that #4305 is pretty much ready to go, it's time to get some more robust npm syncing in place. Turns out the old API we were depending on is going away, so we need to rebuild this subsystem around npm's CouchDB change stream.
Specs

don't store author email address, only maintainer (https://github.com/gratipay/gratipay.com/pull/4305#issuecomment-278458790)
deduplicate emails (shouldn't be a problem w/ only maintainers?)

Todo

[x] clear out old code
[x] write new code
[x] what about deletes?
[x] remove ijson dep, add couchdb
[x] moar tests for consume!
[x] log distance behind registry?
[ ] fix on travis
[ ] check behavior when we catch up

I'm pretty sure the initial load that took two days included README fetching, which we ripped out in #4211. I believe now we can load up from just the metadata, which should go much quicker.

Curveball!
"Deprecating the /-/all registry endpoint"

If you are using the endpoint as a way to get a list of all packages, we encourage you to write a registry follower that watches the changes stream at replicate.npmjs.com for public packages. We provide sample code and libraries to support you.

Pretty sure we want to use https://github.com/djc/couchdb-python.

Probably this API?
https://pythonhosted.org/CouchDB/client.html#couchdb.client.Database.changes

Underlying API: http://docs.couchdb.org/en/2.0.0/api/database/changes.html.

Yeah, this is gonna be it. :-)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import absolute_import, division, print_function, unicode_literals

from couchdb import Database

npm = Database('https://skimdb.npmjs.com/registry')
changes = npm.changes(limit=10)
import pdb; pdb.set_trace()

https://blog.andyet.com/2015/04/06/postgres-pubsub-with-json/

Alright, I think to start with we should go for a naive approach where we have a single process/thread that consumes the registry stream and inserts/updates in our database all at once. Decoupling fetch and update will be more complicated and should be done because we're getting too far behind otherwise. We could even probably build a quick dashboard to show far behind we are—or log over to Librato.

Shelving:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import absolute_import, division, print_function, unicode_literals

from couchdb import Database
from gratipay import wireup

def go(db):
    npm = Database('https://skimdb.npmjs.com/registry')
    changes = npm.changes(feed='continuous', include_docs=True)
    for change in changes:
        doc = change['doc']
        if 'name' not in doc:
            continue  # not a package, probably a design doc*
        name = doc['name']
        description = doc.get('description', '')
        emails = [e for e in [m.get('email') for m in doc.get('maintainers', [])] if e]

        try:
            db.run( "update packages set description=%s, emails=%s where package_manager='npm' and name=%s"
                  , (description, emails, name)
                   )
        except:
            db.run('insert into packages () values ()')

# * https://github.com/npm/registry/blob/aef8a275/docs/follower.md#clean-up
if __name__ == '__main__':
    env = wireup.env()
    db = wireup.db(env)
    go(db)

This is basically a rewrite of this subsystem.

This will actually be much better though. No more ijson dependency and also much closer to real-time. No more batch mode.

Eep! Time to upgrade to Postgres 9.6 locally. 😊
psycopg2.ProgrammingError: syntax error at or near "ON"
LINE 6:     ON CONFLICT (package_manager, name) UPDATE

Yesssss!!!

Okay! I'm going to run this locally and see how long it takes and how it behaves.

Added some logging.

Started a long run ...

pid-77299 thread-140735204086528 (MainThread) Picking up with npm sync at -1.

I'm at about 80,000 after about 10(?) minutes.

So maybe an hour for the whole thing?

That's way better than two days, anyway. ☺

deleted documents include the "deleted": true attribute

http://docs.couchdb.org/en/2.0.0/api/database/changes.html#polling

Out of time for now.
pid-77350 thread-140735204086528 (MainThread) KeyboardInterrupt
pid-77350 thread-140735204086528 (MainThread) Encountered an error, will pick up with 517201 in 60 seconds (Ctrl-C to exit) ...
^C
real    17m47.575s
user    1m16.416s
sys     0m25.121s
[gratipay] $

Every 1.0s: echo 'select count(*) from packages' | psql gratipay                 Wed May  3 17:27:49 2017

Null display is "¤".
Line style is unicode.
Border style is 2.
┌────────┐
│ count  │
├────────┤
│ 100404 │
└────────┘
(1 row)

Deletes should remove locally. Need to take care to unlink teams from packages when deleting packages. It's okay for the team to stick around, I think? It'll have a 404 homepage on npmjs.

Chasing which value to use for logging trailing status.
https://skimdb.npmjs.com/registry
update_seq? committed_update_seq?
https://github.com/couchbase/sync_gateway/issues/1166#issuecomment-148770191 following http://docs.couchdb.org/en/2.0.0/json-structure.html define these as:

The current number of updates made in the database.
The number of committed updates.

Not very helpful. :-/
Better:

So the difference between update_seq and committed_update_seq is delayed commits which is not a feature we support, its not any more useful for replication progress than our update_seq and theres no reason for us to implement it, so closing out

https://github.com/pouchdb/pouchdb/issues/4116#issuecomment-222127298
I guess we go with update_seq and see what we observe?

I've asked on irc.freenode.net#npm about the difference between:
https://replicate.npmjs.com/
https://skimdb.npmjs.com/registry

We do get a doc for deletes.
(Pdb) pp change
{u'changes': [{u'rev': u'2-997ac5f43938c18e61b537c648a819ea'}],
 u'deleted': True,
 u'doc': {u'_deleted': True,
          u'_id': u'netlify-yo-styleguide',
          u'_rev': u'2-997ac5f43938c18e61b537c648a819ea'},
 u'id': u'netlify-yo-styleguide',
 u'seq': 45291}
(Pdb)

Ah! But there's no name.

Alright, so I guess we try deleting the thing and pass silently if it's not there to begin with?

We don't have package linking yet. Handle that on #4305 once this is in master.

Alright, now what's Travis on about?

Errors in test_team_takes.py (at least), though that passes for me in isolation locally.
[gratipay] $ envtest tests/py/test_team_takes.py
[...]
======================================= 38 passed in 9.55 seconds =======================================

Hmm, I do get some errors locally but they look different.
  File "/Users/whit537/personal/gratipay/gratipay.com/env/lib/python2.7/site-packages/aspen/website.py", line 62, in respond
    , _return_after=return_after
  File "/Users/whit537/personal/gratipay/gratipay.com/env/lib/python2.7/site-packages/algorithm.py", line 288, in run
    new_state = function(**deps.as_kwargs)
  File "/Users/whit537/personal/gratipay/gratipay.com/env/lib/python2.7/site-packages/aspen/algorithms/website.py", line 115, in get_response_for_resource
    return {'response': resource.respond(state)}
  File "/Users/whit537/personal/gratipay/gratipay.com/env/lib/python2.7/site-packages/aspen/http/resource.py", line 59, in respond
    content_type, body = super(Dynamic, self).respond(accept, state)
  File "/Users/whit537/personal/gratipay/gratipay.com/env/lib/python2.7/site-packages/aspen/simplates/__init__.py", line 169, in respond
    exec(self.pages[1], context)
  File "/Users/whit537/personal/gratipay/gratipay.com/www/search.spt", line 48, in <module>
    ) _""", locals())
  File "/Users/whit537/personal/gratipay/gratipay.com/env/lib/python2.7/site-packages/postgres/__init__.py", line 548, in all
    return cursor.all(sql, parameters)
  File "/Users/whit537/personal/gratipay/gratipay.com/env/lib/python2.7/site-packages/postgres/cursors.py", line 145, in all
    self.execute(sql, parameters)
  File "/Users/whit537/personal/gratipay/gratipay.com/env/lib/python2.7/site-packages/psycopg2/extras.py", line 288, in execute
    return super(NamedTupleCursor, self).execute(query, vars)
ProgrammingError: function similarity(text, unknown) does not exist
LINE 3:                  SELECT p.*::participants p, similarity(user...
                                                     ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

========================== 9 failed, 831 passed, 34 xfailed in 156.47 seconds ===========================
[gratipay] $

Is there some caching in play at Travis?

Can we whittle down to a single test case that fails at Travis?

Let's see what Travis does with cfbac72beb86ab78eef2b9758274f55a3ed1fc43 ...

Okay! Still failing, and with the same error. 👍
Time to de🐛!

9.6.1: https://travis-ci.org/gratipay/gratipay.com/builds/228820499#L1257

Making another run at this. I'm going to investigate the nine local failures I'm seeing and get those squared. There's a chance that'll resolve Travis as well, and even if not it'll give me a clean baseline to diff against.

Search works on production:
https://gratipay.com/search?q=test
Do I need some contrib module locally?

pg_trgm

Confirmed installed in production:
gratipay::DATABASE=> select * from pg_extension;
┌────────────────────┬──────────┬──────────────┬────────────────┬────────────┬───────────┬──────────────┐
│      extname       │ extowner │ extnamespace │ extrelocatable │ extversion │ extconfig │ extcondition │
├────────────────────┼──────────┼──────────────┼────────────────┼────────────┼───────────┼──────────────┤
│ plpgsql            │       10 │           11 │ f              │ 1.0        │ ¤         │ ¤            │
│ pg_stat_statements │       10 │        16407 │ t              │ 1.4        │ ¤         │ ¤            │
│ pg_trgm            │       10 │        16407 │ t              │ 1.3        │ ¤         │ ¤            │
└────────────────────┴──────────┴──────────────┴────────────────┴────────────┴───────────┴──────────────┘
(3 rows)

gratipay::DATABASE=>

https://www.postgresql.org/docs/9.6/static/catalog-pg-extension.html

Extensions installed locally and tests passing. Okay!

Let's get a clean Travis run ...

Same 89 failures.

Seems like there are two basic failures.
E       ProgrammingError: table row type and query-specified row type do not match
E       DETAIL:  Query provides a value for a dropped column at ordinal position 9.
E       CONTEXT:  SQL statement "UPDATE participants
E                          SET balance = balance + NEW.amount
E                        WHERE username = NEW.participant
E                          AND NEW.direction = 'to-participant'"
E       PL/pgSQL function process_payment() line 3 at SQL statement

and
E       IntegrityError: duplicate key value violates unique constraint "teams_pkey"
E       DETAIL:  Key (slug)=(TheEnterprise) already exists.

I was poking at the first earlier, seems tricky. Maybe the second is more transparent?

Single test passes!

Single file passes!

E       ProgrammingError: table row type and query-specified row type do not match
E       DETAIL:  Query provides a value for a dropped column at ordinal position 9.
E       CONTEXT:  SQL statement "UPDATE participants
E                          SET balance = balance + NEW.amount
E                        WHERE username = NEW.participant
E                          AND NEW.direction = 'to-participant'"
E       PL/pgSQL function process_payment() line 3 at SQL statement

Quick google search reveals:
https://dba.stackexchange.com/questions/153981/postgresql-9-6-column-dropping-and-side-effects-on-sql-functions-with-ctes

I'm going to see if we can specify 9.6.2 on travis

:( still failing

PostgreSQL 9.6.2 is not installed!

@rohitpaulk Can we get away with 9.5 on Travis? I don't think we are depending on any 9.6 features, that's just what Heroku installed as the latest. UPSERT was introduced in 9.5.

Can we get away with 9.5 on Travis?

Worth trying. Pushing..

I'll try to install 9.6.2 on a separate PR, better if we run CI against the exact version on production.

@whit537 Installing 9.5 worked!

I'll try to install 9.6.2 on a separate PR, better if we run CI against the exact version on production.

Okay. We should also ping Travis (IRC? email?) about upgrading in their infrastructure. Much easier for us that way.

Metrics logging seems to be working. A couple more things to clean up and then ready for review ...

I'm running the whole thing end-to-end locally to see what kind of behavior we can expect and flush out any last bugs.

Yeah, I'm good with this. Submitting for review, @rohitpaulk!

Fixing Travis failure ...

/me looking into failures ...

I'm good once travis is :)

Travis is good! :-D

==

Some discussion of error reporting architecture in slack.

Merging and deploying...

When you're done you could try adding an instrument to http://inside.gratipay.com/appendices/health for npm sync lag. Librato is in 1Password so it would be a good test for that as well. :)

Okay, we've got an error..

Hmm, I had a sync_npm older lying around.. wonder where that came from

I forgot to add the env var 😞 Gratipay was down for around 3 minutes, back up now

Now to figure out how to run the syncer. Add it to the heroku procfile?

I'm going to try to run as a one-off dyno first

Some deploy log in slack.

Hmm, I had a sync_npm folder lying around.. wonder where that came from

Maybe pyc files kept Git from removing it after the switch from sync_npm/ to sync_npm.py?


Support remote installation of modules in private registries

Description
Right now the Lifecycle Manager in the Control Plane provides full support for manifests that are located in repositories secured with credentials: https://github.com/kyma-project/lifecycle-manager/blob/main/docs/developer-tutorials/config-private-registry.md
This however, does not work when the ModuleTemplate is located in the runtime cluster (referenced by the remoteModuleTemplateRef in Kyma CR). Creating such a secret in the runtime cluster should be possible, as for now - Lifecycle Manager does the lookup only in the Control Plane cluster:
error creating repository from spec: no auth secret found

Reasons
We want to provide the possibility to install modules from private registries in remote mode.
Acceptance Criteria

[x] It is possible to install a remote module that is in the private OCI registry.
[x] KLM should fetch credentials secret from same cluster as module template is installed (i.e. SKR).
[x] Improve documentation (dev tutorial,  etc.).
[x] Add section regarding remote module template in Kyma CR doc
[x] For Testing: Use existing test as inspiration.

[x] If modules template contains auth label, KLM should error out if no secret in SKR.

@lindnerby @nesmabadr - I see that PR with the fix was merged and the build was successful. But in my cluster, I am still getting the same error.

Can you please let me know when will this fix be available in my cluster?
FYI: My cluster API Server Address - https://api.d2bba1f.stage.kyma.ondemand.com

Update- It started working today. Not sure if there was any update on the stage environment today.

Thanks for the help.

@anirudhprasad-sap confirmed with me that the solution works now. 🙂


SVG dark mode

Description
I'm using the SVG export for a preview in my app, could there be a way to make it suitable for dark backgrounds by making the text white?
Use Case
Dark mode users, so their eyes don't get burnt 😅

you can set text and background colors in your typst source code, then it produce "dark mode" svg

you can set text and background colors in your typst source code, then it produce "dark mode" svg

Could you show me a sample or link to the docs of how to set the text and background colors?

https://typst.app/docs/reference/layout/page/

i think it is an easy google search🤔why not do it yourself

Thank you, I didn't find it in Google search.


Thank you!!

Including the npm caching logic in every GitHub Action I write is so annoying. Having this as a one-liner makes my logic so much cleaner :) Thanks for making this library!

@jsmith :heart:


Is this correct for the middleware part ? "The transient OperationId value is different in the IndexModel and in the middleware."

"The transient OperationId value is different in the IndexModel and in the middleware."
This sentence seems to be incorrect for the middleware part. MyMiddleware ,which is singleton, captures transient IOperationTransient.  Therefore _transientOperation.OperationId will also be the same for  every request.

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

ID: 0d78f540-81fd-1ba9-cb90-591e4ec27d9b
Version Independent ID: 2251f557-dd3a-ec35-2558-6243337db009
Content: Dependency injection in ASP.NET Core
Content Source: aspnetcore/fundamentals/dependency-injection.md
Product: aspnet-core
Technology: aspnetcore-fundamentals
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

Have you tested the sample. It's transient therefore different.
var builder = WebApplication.CreateBuilder(args);

builder.Services.AddRazorPages();

builder.Services.AddTransient<IOperationTransient, Operation>();
builder.Services.AddScoped<IOperationScoped, Operation>();
builder.Services.AddSingleton<IOperationSingleton, Operation>();

var app = builder.Build();


[FEATURE] Add support for configuring BCrypt password hashing

What solution would you like?
Currently password hashing with BCrypt is not configurable.  It will be useful for cluster administrators to be able to configure properties such as:

number of rounds
version of the BCrypt algorithm

Do you have any additional context?
The work for this was completed as part of https://github.com/opensearch-project/security/pull/4524. Raising this issue so we can tag it for 2.16

[Triage] Hi @dancristiancecoi, thanks for filing this issue. This sounds like a good addition to the existing BCrypt support. Will mark as triaged.


ENTESB-16268: Remove API deprecation of CustomResourceDefinition

Re-layout resources in operator-sdk approved-layout

Introduce config/Makefile for handling both the kustomize-based installer
and generating the operator bundle

config/script/namespace.sh

Uses the kubectl context for finding the current namespace

Just a minor,  remote the duplicate "# Upgrade.."  section in README.md line 57
Building with make throws some errors about operator-sdk usage (version 1.6.1), not sure if it's related to this change.
$ make
./scripts/go-build.sh
Generating packr boxes...
The 'operator-sdk generate' command invokes a specific generator to generate
code or manifests.

Usage:
  operator-sdk generate [command]

Available Commands:
  bundle           Generates bundle data for the operator
  kustomize        Contains subcommands that generate operator-framework kustomize data for the operator
  packagemanifests Generates package manifests data for the operator


Unable to assertJson on GET API Request

Hi, I've reached out to StackOverflow, Laravel Discord, and Larachat (Slack), and I'm still unable to resolve this weird issue with assertJson.

Laravel Version: v5.7.14
PHP Version: 7.2

I'm wanting to write a test to create a user then test if the user shows within the Users API index json response using the api/users route.
I've read through the documentation on writing REST API Tests with Laravel and PHPUnit. I'm having a hard time getting the assertJson to pass as it's returning the following error:
Failed asserting that an array has the subset Array &0 (
    'name' => 'Buck Trantow V'
    'email' =><EMAIL_ADDRESS>).
--- Expected
+++ Actual
@@ @@
     array (
     ),
   ),
-  'name' => 'Buck Trantow V',
-  'email' =><EMAIL_ADDRESS> )

Test:
    public function testUserIndex()
        {
            $user = factory(User::class)->create();

            $response = $this
                ->actingAs($user, 'api')
                ->json('GET', '/api/users')
                ->assertStatus(200);

            $response
                ->assertJson([
                    'name'     => $user->name,
                    'email'    => $user->email,
                ]);
        }

Route / User Controller:
Route::resource('users', 'UserController');
UserController:
    public function index()
        {
            return User::all();
        }

dd($response): (after assert 200)
Illuminate\Foundation\Testing\TestResponse {#354
  +baseResponse: Illuminate\Http\JsonResponse {#1058
    #data: "[{"id":1,"name":"Rocky Boehm Sr.","username":"ischoen","email":"zlubowitz@example.org","login_at":null,"phone":null,"created_at":"2018-11-26 16:26:07","updated_at":"2018-11-26 16:26:07","deleted_at":null,"roles":[]}]"
    #callback: null
    #encodingOptions: 0
    +headers: Symfony\Component\HttpFoundation\ResponseHeaderBag {#1059
      #computedCacheControl: array:2 [
        "no-cache" => true
        "private" => true
      ]
      #cookies: array:1 [
        "" => array:1 [
          "/" => array:1 [
            "XSRF-TOKEN" => Symfony\Component\HttpFoundation\Cookie {#1033
              #name: "XSRF-TOKEN"
              #value: "eyJpdiI6IkE0TlZqS0pXb3FWNlR3TUJhcExHRkE9PSIsInZhbHVlIjoiVnpnV3dyMktFUjBsQndjRitNS2tRU3pHNjYxSnF1VWFcL3RteHM3djNmeVwvQ1lZb0R5UHBEcWt4R0FSN1FwakJkIiwibWFjIjoiZjIyMmEwZDhkM2IxMzJhYjE2NTllOGI4ZjM1YjUwZTJhN2Q5NjBkN2Q2YjE2YzY5ZWQ2ZjM4MGJlZmFkNjVmYSJ9"
              #domain: null
              #expire:<PHONE_NUMBER>
              #path: "/"
              #secure: false
              #httpOnly: false
              -raw: false
              -sameSite: null
            }
          ]
        ]
      ]
      #headerNames: array:4 [
        "cache-control" => "Cache-Control"
        "date" => "Date"
        "content-type" => "Content-Type"
        "set-cookie" => "Set-Cookie"
      ]
      #headers: array:3 [
        "cache-control" => array:1 [
          0 => "no-cache, private"
        ]
        "date" => array:1 [
          0 => "Mon, 26 Nov 2018 16:26:07 GMT"
        ]
        "content-type" => array:1 [
          0 => "application/json"
        ]
      ]
      #cacheControl: []
    }
    #content: "[{"id":1,"name":"Rocky Boehm Sr.","username":"ischoen","email":"zlubowitz@example.org","login_at":null,"phone":null,"created_at":"2018-11-26 16:26:07","updated_at":"2018-11-26 16:26:07","deleted_at":null,"roles":[]}]"
    #version: "1.1"
    #statusCode: 200
    #statusText: "OK"
    #charset: null
    +original: Illuminate\Database\Eloquent\Collection {#1072
      #items: array:1 [
        0 => App\User {#1070
          #fillable: array:7 [
            0 => "name"
            1 => "username"
            2 => "email"
            3 => "password"
            4 => "login_at"
            5 => "profile_photo"
            6 => "phone"
          ]
          #dates: array:4 [
            0 => "created_at"
            1 => "updated_at"
            2 => "login_at"
            3 => "deleted_at"
          ]
          #hidden: array:3 [
            0 => "password"
            1 => "remember_token"
            2 => "profile_photo"
          ]
          #connection: "mysql"
          #table: "users"
          #primaryKey: "id"
          #keyType: "int"
          +incrementing: true
          #with: []
          #withCount: []
          #perPage: 15
          +exists: true
          +wasRecentlyCreated: false
          #attributes: array:12 [
            "id" => 1
            "name" => "Rocky Boehm Sr."
            "username" => "ischoen"
            "email" =><EMAIL_ADDRESS>            "password" => "$2y$10$TKh8H1.PfQx37YgCzwiKb.KjNyWgaHb9cbcoQgdIVFlYg7B77UdFm"
            "profile_photo" => "data:image/jpeg;base64"
            "login_at" => null
            "phone" => null
            "remember_token" => "iLBOORMfph"
            "created_at" => "2018-11-26 16:26:07"
            "updated_at" => "2018-11-26 16:26:07"
            "deleted_at" => null
          ]
          #original: array:12 [
            "id" => 1
            "name" => "Rocky Boehm Sr."
            "username" => "ischoen"
            "email" =><EMAIL_ADDRESS>            "password" => "$2y$10$TKh8H1.PfQx37YgCzwiKb.KjNyWgaHb9cbcoQgdIVFlYg7B77UdFm"
            "profile_photo" => "data:image/jpeg;base64"
            "login_at" => null
            "phone" => null
            "remember_token" => "iLBOORMfph"
            "created_at" => "2018-11-26 16:26:07"
            "updated_at" => "2018-11-26 16:26:07"
            "deleted_at" => null
          ]
          #changes: []
          #casts: []
          #dateFormat: null
          #appends: []
          #dispatchesEvents: []
          #observables: []
          #relations: array:1 [
            "Roles" => Illuminate\Database\Eloquent\Collection {#1069
              #items: []
            }
          ]
          #touches: []
          +timestamps: true
          #visible: []
          #guarded: array:1 [
            0 => "*"
          ]
          #rememberTokenName: "remember_token"
          #forceDeleting: false
          -roleClass: null
          -permissionClass: null
        }
      ]
    }
    +exception: null
  }
  #streamedContent: null
}

I've found that using assertJsonFragment works a lot better, instead.


Hope this time work- Dandelion PE+ iskandarasri03

Come with a real account, and don't specify j value in make line.

Hi sir...this is my only account...and im new on Android development
😅..sorry for any problem that i made
On Sun, Oct 3, 2021, 10:35 AM Khalakuzzaman Apon @.***>
wrote:

Come with a real account, and don't specify j value in make line.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ROM-builders/temporary/pull/2308#issuecomment-932851370,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ARBMLZXPKAO37ZUDRJENH5LUE66N3ANCNFSM5FHB6QSA
.


Update cloudknox-product-permission-analytics.md

Minor updates to the doc to make it consistent to the current UX.
Line 61: the alert "Identity performed high number of tasks" doesn't exists, it seems. Could you please confirm if we should put another one?

@marcelodiiorio : Thanks for your contribution! The author(s) have been notified to review your proposed change.


fix: typo and commas

PR Checklist

[x] Addresses an existing open issue: fixes #000
[x] That issue was marked as status: accepting prs
[x] Steps in CONTRIBUTING.md were taken

Overview
fixes #4

@all-contributors please add @danieljcafonso for code.

🤖 Beep boop! This comment was added automatically by all-contributors-auto-action.
Not all contributions can be detected from Git & GitHub alone. Please comment any missing contribution types this bot missed.
...and of course, thank you for contributing! 💙


Calculator says encoding is UCS-2, but it looks like UTF-16?

Great work! This is the best SMS segment calculator I have found on the web!
A small point:
When I tried a few emojis like 😋 (U+1F60B) I found they seemed to encode correctly, but it looks like UTF-16.
My understanding was the UCS-2 is fixed 16-bit width, so can't encode emojis.
https://stackoverflow.com/questions/54771549/emojis-not-correctly-encode-into-hexadecimal#answer-54771717
http://www.differencebetween.net/technology/software-technology/difference-between-ucs-2-and-utf-16/
The calculator says it's using UCS-2, but is it actually using UTF-16?
(happy to submit pull requests, just asking for clarification before taking any actions)

It can encode emojis. For example, try to send this to your friend.

If the coding is actually UTF-16 (for code points outside the BMP), do you want the UCS-2 description changed to UFT-16?
If so, I'll submit a pull request (when time allows).

do you want the UCS-2 description changed to UFT-16?

That is a bad idea, since UCS-2 is what is only permited still (though need to look up 5G SMS over IP specs).

Agree with @ValZapod. The only two encoding allowed by GSM specs are GSM7 and UCS-2. Emoji are built on top of the latter through surrogates.
From the point of view of the calculator, we decided to show only GSM7 and UCS2 because the main purpose of it is to calculate how many segments are going to be sent and which encoding will be used by the carrier.

I'm going to close this issue unless there are other inputs. Thanks all for contributing to the conversation!

All good, again, great work on the calculator!


fixed an issue with the web interface not loading under docker

Description
This fixes an issue with the web interface not loading when running under docker.
Fixes a sub issue under #210
Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)

Checklist:
Please put an x in the boxes that apply. You can also fill these out after creating the PR.

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] I have tested this code locally, and it is working as intended
[ ] I have updated the documentation accordingly

oh yeah that looks like it, someone forgot that the new UI is server from different folder 🗡

Update - this does close #210. I believe there were multiple issues at play, but based on the last reply this has now helped two (three including myself) people get up and running via docker.


chore: removed Intellimize IDs

Overview

Removes data-intellimize from code now that we no longer use Intellimize.

📬Published Alpha Packages:@codecademy/gamut-kit@0.3.6-alpha.184c1a.0@codecademy/gamut-labs@13.3.6-alpha.184c1a.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://606f4f338b0ac30088156607--gamut-preview.netlify.appDeploy Logs

📬Published Alpha Packages:@codecademy/gamut-kit@0.3.7-alpha.8d2efd.0@codecademy/gamut-labs@13.3.7-alpha.8d2efd.0<EMAIL_ADDRESS>
📬Published Alpha Packages:@codecademy/gamut-kit@0.3.7-alpha.115202.0@codecademy/gamut-labs@13.3.7-alpha.115202.0<EMAIL_ADDRESS>
📬Published Alpha Packages:@codecademy/gamut-kit@0.3.7-alpha.44bbce.0@codecademy/gamut-labs@13.3.7-alpha.44bbce.0<EMAIL_ADDRESS>
🚀 Styleguide deploy preview ready!https://6070aa99fd013b3f10b54253--gamut-preview.netlify.appDeploy Logs


Help is attempting to add links, which seem to be sanitized away

When I click on things in Dartpad and it shows me help for them I think it's trying to set links on them, but I see output in the devtools console like the following. This suggests that the links are being removed by the sanitizer, and something should be using
  treeSanitizer: NodeTreeSanitizer.trusted

There also seems to be a launch.svg that isn't found.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLDivElement.HTMLDivElement Failed to load resource: the server responded with a status of 404 (NOT FOUND)
main.dart.js:9018 Removing disallowed attribute
main.dart.js:9018 Removing disallowed attribute
https://dartpad.dartlang.org/styles/packages/dart_pad/elements/launch.svg Failed to load resource: the server responded with a status of 404 (OK)
https://developer.mozilla.org/en-US/docs/Web/API/HTMLDivElement.HTMLDivElement Failed to load resource: the server responded with a status of 404 (NOT FOUND)
main.dart.js:9018 Removing disallowed attribute
main.dart.js:9018 Removing disallowed attribute
https://developer.mozilla.org/en-US/docs/Web/API/HTMLDivElement.HTMLDivElement Failed to load resource: the server responded with a status of 404 (NOT FOUND)
main.dart.js:9018 Removing disallowed attribute
main.dart.js:9018 Removing disallowed attribute
main.dart.js:9018 Removing disallowed attribute
main.dart.js:9018 Removing disallowed attribute
main.dart.js:9018 Removing disallowed attribute
main.dart.js:9018 Removing disallowed attribute
https://developer.mozilla.org/en-US/docs/Web/API/HTMLDivElement.HTMLDivElement Failed to load resource: the server responded with a status of 404 (NOT FOUND)
main.dart.js:9018 Removing disallowed attribute
main.dart.js:9018 Removing disallowed attribute
main.dart.js:9018 Removing disallowed attribute

Could you provide some information about the browser and operating system you are using?

MacOS X 10.10.4. Chrome 44.
No, the pad is completely trivial. And this reproduces on Linux Chrome as well, with the default pad. Just create a new pad, click on "print" so that some help appears for the definition of that function, then look at the devtools console.

I see now. Thanks for filing the issue! I will take a look it.

Fixed: https://github.com/dart-lang/dart-pad/pull/689


feat: azure download multiple secure files

Tests results:

PR with adjusting extension languages. https://github.com/aochmann/azure-download-multiple-secure-files/pull/2


Update Go dependencies

Signed-off-by: Guilherme Macedo<EMAIL_ADDRESS>

Accidentally approved - don't merge yet

@MbolotSuse not sure if you approved it and revert, but in case affirmative, we need the approval again in order to merge it, please.


HTML pieces move into classes wrapping the source HTML files. This al…

…lows us to edit/view them in a browser.
Merge checklist

[x] TravisCI tests passed
[x] Documentation

Thank you for the PR @kozakHolota - I will take a look on this today. Can you please add me in twitter (@prashanthsams), to get you in our dev slack.

Codecov Report

Merging #206 (b3034d2) into master (29aea22) will increase coverage by 0.369%.
The diff coverage is 25.205%.

@@              Coverage Diff              @@
##            master      #206       +/-   ##
=============================================
+ Coverage   26.265%   26.635%   +0.369%
=============================================
  Files            4         5        +1
  Lines          632       642       +10
=============================================
+ Hits           166       171        +5
- Misses         466       471        +5

@prashanth-sams
Fixed the HTML layout. Tested on my own. Layout looks good. Please check.

@kozakHolota awesome work with lots of fixes; I still see few UI improvements needed. You can compare with the old reports if you have - else I can share.

Screen.Recording.2022-03-20.at.7.12.31.PM.mov

The problem here was the global vars usage which makes any refactoring quite difficult business. For now I've solved this moving all global vars into the separate module pytest_html_reporter.const_vars. For the future I think we need to move them into some class constants or Enum members to make possible any extension of this product. So, Please review and provide your feedback.

Style is fixed. Now everything looks very well. Please review.

@kozakHolota Nice; btw, can you apply the same style fixes in 'test suite' as well?

also, anything we can do in archive layout? cos it is an important feature in our report

@prashanth-sams  - fixed archive rows. Pease review.

@kozakHolota Impressive! one last change needed :D
It's with the title
pytest tests/ --html-report=./report --title='XYZ'

custom title fix needed + minor indentations
Everything is fixed.


Add interceptors to content resolver

Codecov Report

Merging #864 into master will decrease coverage by 0.69%.
The diff coverage is 95.26%.

@@             Coverage Diff             @@
##             master     #864     +/-   ##
===========================================
- Coverage     97.66%   96.97%   -0.7%
+ Complexity      829      804     -25
===========================================
  Files            98       98
  Lines          2744     2779     +35
  Branches        302      306      +4
===========================================
+ Hits           2680     2695     +15
- Misses           35       55     +20
  Partials         29       29

Impacted Files
Coverage Δ
Complexity Δ

...esh/storio3/sqlite/operations/get/PreparedGet.java
100% <ø> (ø)
6 <0> (ø)
:arrow_down:

...fresh/storio3/sqlite/impl/DefaultStorIOSQLite.java
99.29% <ø> (ø)
10 <0> (ø)
:arrow_down:

.../com/pushtorefresh/storio3/LoggingInterceptor.java
0% <ø> (ø)
0 <0> (?)

...java/com/pushtorefresh/storio3/impl/ChainImpl.java
73.33% <ø> (ø)
4 <0> (?)

...qlite/operations/get/PreparedGetListOfObjects.java
100% <ø> (ø)
5 <0> (ø)
:arrow_down:

...qlite/operations/put/PreparedPutContentValues.java
96.55% <ø> (ø)
6 <0> (ø)
:arrow_down:

...com/pushtorefresh/storio3/sqlite/StorIOSQLite.java
100% <ø> (ø)
7 <0> (ø)
:arrow_down:

...esh/storio3/sqlite/operations/put/PreparedPut.java
100% <ø> (ø)
2 <0> (ø)
:arrow_down:

...operations/put/PreparedPutCollectionOfObjects.java
92.4% <ø> (ø)
6 <0> (ø)
:arrow_down:

...orio3/sqlite/operations/delete/PreparedDelete.java
100% <ø> (ø)
2 <0> (ø)
:arrow_down:

... and 27 more

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 544ee5b...8a2ff1a. Read the comment docs.


Ensure plugin types are exposed

chore: release v2.0.7
chore: update deps
fix: ensure plugin types are exposed
🔗 Linked issue

none

📚 Description
Fixed import of defineNuxtPlugin to properly expose types accordingly to template: https://github.com/nuxt/starter/blob/module/src/runtime/plugin.ts

Thanks for the PR! But why not keep #imports, do you run into any issues?

I believe using #imports is the correct way here, as all other Nuxt modules use it at the moment. For example:
https://github.com/nuxt-modules/color-mode/blob/0aed5962b4b6e2880f90c713b6773624e276bcec/src/runtime/plugin.client.ts#L4


Kconfig Language

Hello, I thought I would open an issue to request support for the Kconfig (Linux Kernel config) language
Grammar/syntax: https://github.com/luveti/kconfig-vscode
Example from Chion82/netfilter-full-cone-nat readme:
config IP_NF_TARGET_FULLCONENAT
  tristate "FULLCONENAT target support"
  depends on NETFILTER_ADVANCED
  select NETFILTER_XT_TARGET_FULLCONENAT
  ---help---
  This is a backwards-compat option for the user's convenience
  (e.g. when running oldconfig). It selects
  CONFIG_NETFILTER_XT_TARGET_FULLCONENAT.

The Linguist project relies upon community supplied contributions for new languages. Please feel free to review the CONTRIBUTING.md and submit a pull request adding support.


[eks] New release: 1.23

Fixes #1467
Some dates will get auto-corrected soon, so not touching those.

Fixed regex to account for new releases: https://github.com/endoflife-date/release-data/pull/13


New "Try with sample data" link does not load.

Fixed by https://github.com/humanitiesplusdesign/palladio/commit/58666a88d94e2b5d1cbee220c5202f7c2000318e (I believe)


Chip removal causing chips rendering issues

The issue is quite strange and interesting.
It can be reproduced with the examples from the demo page(i.e. the autocomplete demo with the countries).
https://www.webcomponents.org/element/fabbricadigitale/paper-chip/demo/demo/index.html
If a chip is removed from the head/beginning or anywhere but not the last the next chip is getting removed as well. In other words if we have 2 or more chips and remove any chip but not the last two chips are removed, the chip selected for remove and the next one. I thought that the issue is simple but after digging in the code it turned out a little more complex :)
The paper-chip's code for chip removal seems correct, the chip is getting removed accordingly and the array of values is spliced just fine. The Polymer's 'dom-repeat' renderer function is being called at the end wrapped in an asyc call and is doing a full template refresh after which we end up with this bug.

Hi @magiccrafter thanks for noticing it, you're right.
I'm pushing the solution. Soon, after some regression tests, we'll relase a patch version. Thanks a lot !


perf(forge): improve workspace path autodection

Changes

move TryFrom to separate function
add --hardhat flag as shortcut for --contracts contracts --lib-paths node_modules
autodetect workspace layout:
dapptools style takes precedent, but if src / out are missing, check for contracts and artifacts as well

dapptools style takes precedent, but if src / out are missing, check for contracts and artifacts as well

what if they just cloned a dapptools repo fresh from git? it won't have out but still have src

dapptools style takes precedent, but if src / out are missing, check for contracts and artifacts as well

what if they just cloned a dapptools repo fresh from git? it won't have out but still have src

in that case out will also be set, dapptools style is always checked first and is always the fallback if contracts/artifacts also does not exist, but perhaps these assumptions are not always the expected behavior?

@mattsse my bad i meant out. it won't be set on a fresh clone as most ppl git ignore it.

@mattsse my bad i meant out. it won't be set on a fresh clone as most ppl git ignore it.

it follows this logic
https://github.com/gakonst/foundry/pull/217/files#diff-399b0ef06f74fce04b5cefda9641dea0e2cb8f4ec03cad45020dba2916a7f971R102-R116
so basically it will always use out unless artifacts exist already


Fix Lerna hoist warnings on npm run bootstrap

We have a handful of Lerna hoist warnings that we should fix. See the pasted log below and fix the issues so a npm run bootstrap produces no warnings.
lerna WARN EHOIST_ROOT_VERSION The repository root depends on<EMAIL_ADDRESS>which differs from the more common<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-details-list-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-buttons" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-datepicker-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-decorators-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-details-list-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-dropdown-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-expandable-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-lists-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-message-box-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-spinner-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-system-message-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-datepicker-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-decorators-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-details-list-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-dropdown-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-expandable-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-lists-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-message-box-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-spinner-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-system-message-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_ROOT_VERSION The repository root depends on<EMAIL_ADDRESS>which differs from the more common<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-core-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-icons-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-system-message-react" package depends on prop-types@*, which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-decorators-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-dropdown-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>lerna WARN EHOIST_PKG_VERSION "@sb1/ffe-tables-react" package depends on<EMAIL_ADDRESS>which differs from the hoisted<EMAIL_ADDRESS>

Was this issue fixed with this commit, @kwltrs?

Fixed in 42fad9f2dae51f250c07d44b78c9b5b0fee153d1

Fixed in 42fad9f2dae51f250c07d44b78c9b5b0fee153d1


2024-04-20, 21, Python으로 웹 스크래퍼 만들기: From 4.5 to 4.9

<EMAIL_ADDRESS>


Cache is not thread safe

Describe the issue:
Computing any dask graphs while using the same cache on multiple threads can cause errors.
This has been previously reported in a variety of issues (e.g. https://github.com/dask/dask/issues/896, https://github.com/dask/distributed/issues/2372, https://github.com/napari/napari/issues/5591, https://github.com/haesleinhuepf/napari-time-slicer/pull/6), but I wrote a new issue with a reproducer to clarify one underlying cause.
Minimal Complete Verifiable Example:
The following Python code should always raise an exception on the non-main thread.
import numpy as np
import dask.array as da
from dask.cache import Cache
from threading import Condition, RLock, Thread

# Extend the regular cache so that we block execution in the _posttask callback
class BlockingCache(Cache):
    def __init__(self, cache):
        super().__init__(cache)
        self.task_finished = Condition()
        self.posttask_lock = RLock()

    def _posttask(self, key, value, dsk, state, id):
        with self.task_finished:
            self.task_finished.notify()
        with self.posttask_lock:
            super()._posttask(key, value, dsk, state, id)

def cached_array_index(cache, array, index):
    with cache:
        return array[index].compute()

def test_multithreaded_access():
    array = da.from_array([0, 1])
    # Cache size is irrelevant because we don't need it here.
    cache = BlockingCache(1)
    thread = Thread(target=cached_array_index, args=(cache, array, 0))
    # Hold the posttask_lock to prevent the other thread from
    # executing the actual cache's _posttask callback.
    with cache.posttask_lock:
        with cache.task_finished:
            thread.start()
            # Wait for the other thread to reach _posttask.
            cache.task_finished.wait()
        # Execute the whole graph on the main thread.
        cached_array_index(cache, array, 1)
    # Wait for the other thread to finish executing.
    thread.join()

if __name__ == '__main__':
    test_multithreaded_access()

Here is the error I get on my local machine.
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/Users/asweet/software/miniconda3/envs/napari-cryoet-data-portal-dev/lib/python3.9/threading.py", line 980, in _bootstrap_inner
    self.run()
  File "/Users/asweet/software/miniconda3/envs/napari-cryoet-data-portal-dev/lib/python3.9/threading.py", line 917, in run
    self._target(*self._args, **self._kwargs)
  File "/Users/asweet/data/bugs/5591/simplified_dask.py", line 23, in cached_array_index
    return array[index].compute()
  File "/Users/asweet/software/miniconda3/envs/napari-cryoet-data-portal-dev/lib/python3.9/site-packages/dask/base.py", line 310, in compute
    (result,) = compute(self, traverse=False, **kwargs)
  File "/Users/asweet/software/miniconda3/envs/napari-cryoet-data-portal-dev/lib/python3.9/site-packages/dask/base.py", line 595, in compute
    results = schedule(dsk, keys, **kwargs)
  File "/Users/asweet/software/miniconda3/envs/napari-cryoet-data-portal-dev/lib/python3.9/site-packages/dask/threaded.py", line 89, in get
    results = get_async(
  File "/Users/asweet/software/miniconda3/envs/napari-cryoet-data-portal-dev/lib/python3.9/site-packages/dask/local.py", line 516, in get_async
    f(key, res, dsk, state, worker_id)
  File "/Users/asweet/data/bugs/5591/simplified_dask.py", line 18, in _posttask
    super()._posttask(key, value, dsk, state, id)
  File "/Users/asweet/software/miniconda3/envs/napari-cryoet-data-portal-dev/lib/python3.9/site-packages/dask/cache.py", line 58, in _posttask
    duration = default_timer() - self.starttimes[key]
KeyError: ('getitem-8d24cd8febbf60810a2497062186234f',)

I also created a diagram to show what's happening here.
Note that in this case, the tasks are different, but that doesn't matter since Cache._finish clears Cache.starttimes. There is another more interesting variant of this bug where the cache actually gets used.
def test_multithreaded_access_same_key():
    array = da.from_array([0, 1])
    # Cache is not big enough to store even one result, so each
    # array access will cause a task to be executed.
    cache = BlockingCache(1)
    thread = Thread(target=cached_array_index, args=(cache, array, 0))
    with cache.posttask_lock:
        with cache.task_finished:
            thread.start()
            cache.task_finished.wait()
        cached_array_index(cache, array, 0)
    thread.join()

Any fix here should probably fix both of these tests as a minimum.
Anything else we need to know?:
I'm mostly coming here from napari (https://github.com/napari/napari/pull/5610). Based on comments from the related issues, it sounds like there was no intent to make Cache thread safe and there may not be much motivation to make it thread safe in the future. I think that's fine, but hope this issue is still hopeful for others running into the same issue.
One potential fix is to change the implementation of Cache._posttask and Cache._finish to be the following.
    def _posttask(self, key, value, dsk, state, id):
        if starttime := self.starttimes.pop(key, None):
            duration = default_timer() - starttime
            if deps := state["dependencies"][key]:
                duration += max(self.durations.get(k, 0) for k in deps)
            self.durations[key] = duration
            nb = self._nbytes(value) + overhead + sys.getsizeof(key) * 4
            self.cache.put(key, value, cost=duration / nb / 1e9, nbytes=nb)

    def _finish(self, dsk, state, errored):
        self.durations.clear()

This fixes the tests above and seems to make some vague sense to me (i.e. don't update the cache when a stale task finishes), but I don't know enough about dask to state that with much certainty.
Environment:

Dask version: 2023.6.1
Python version: Python 3.9.6
Operating System: macOS 13.4 (Intel)
Install method (conda, pip, source): pip

I just briefly chatted with @jni .  My sense is that a PR making dask.cache.Cache threadsafe (or a PR to cachey doing it, if that solves the problem) would be welcome.  Any lack of engagement here is due only to lack of attention, not any kind of disagreement.
I'm hopeful that a threading.Lock in the right few places will suffice.


Enable resolution of unprefixed dataset IDs

This started in #528 before an existing bug existed.

Porting comment from @jgeewax on related issue (#475):

This isn't possible with the current dataset_id situation requiring s~ or e~ prefixes in
the key protobuf. Moving to Datastore Future since we don't know for sure when
this will be fixed.

+1 to this. I had an issue with ndb.StructuredProperties related to this where app engine couldn't access an entity's structure properties b/c one of them was a key with _app=MY_APP instead of _app=s~MY_APP.

@yjkogan Comment makes me realize I should link to GoogleCloudPlatform/google-cloud-datastore#59 in this issue.
@yjkogan You are better off just using s~MY_APP as your dataset ID.
We'd like to help along people who don't realize the prefix exists, but since you do, it's no big deal to use. Does that make sense?

@dhermes Yeah I just set s~MY_APP as my dataset id. It was an easy workaround. Just +1ed since I'm in favor of making that distinction invisible to users of this library.

Great!

This is made moot by v1beta3, follow #1288 for progress towards that.

This is made moot by v1beta3, follow #1288 for progress towards that.


Make node-exporter CentOS 8 compliant

commit 28c7e67aeb62ae53305bfc5f8ee8db38b6ae10de introduced a new
variables file discovery. This caused a CentOS 8 host to match first on
redhat.yaml which is rhel7 specific. Add a vars file for CentOS 8 to
match before.

Do you know why CentOS8 is not picking up variables from redhat-8.yml as it should?
What are the values of:
ansible_distribution
ansible_distribution_version
ansible_distribution_major_version
ansible_distribution_file_variety
ansible_os_family
ansible_distribution_version

from CentOS8 host?

Closing in favour of #114


Error when building Matlab bindings for M1 MAC

Hi, thanks for your open sourced work. I'm trying to test CLIPPERPplus on my M1 MAC, it gets some troubles in compiling Matlab bindings.
Here's my cmake command
cmake -D BUILD_BINDINGS_MATLAB=ON -DMatlab_ROOT_DIR=/Applications/MATLAB_R2024b.app -DMatlab_MEX_LIBRARY="/Applications/        MATLAB_R2024b.app/bin/maca64/libmex.dylib" \
  -DMatlab_MX_LIBRARY="/Applications/MATLAB_R2024b.app/bin/maca64/libmx.dylib" \
  -DMatlab_MAT_LIBRARY="/Applications/MATLAB_R2024b.app/bin/maca64/libmat.dylib" \
..

Then I go to bindings/matlab subfolder and run make, I get
clique_corenumber_mex.cpp:53:14: error: no member named 'clique_corenumber' in namespace 'clipperplus'
53 | clipperplus::clique_corenumber(adj, clique, core_numbers,
| ~~~~~~~~~~~~~^
1 warning and 1 error generated.
make[2]: *** [bindings/matlab/CMakeFiles/clique_corenumber_mex.dir/clique_corenumber_mex.cpp.o] Error 1
make[1]: *** [bindings/matlab/CMakeFiles/clique_corenumber_mex.dir/all] Error 2
make: *** [all] Error 2
Hope you can give some advice. Thanks

Hi, thank you for reporting the issue
We recently refactored the code and haven’t updated the MATLAB bindings yet. I tried fixing it, but I’m unable to test it at the moment. Please try using the matlab-bindings branch, and if it still doesn’t work, you can use an older version (tagged as v1.0.0). Or you can comment out the line, knowing that the function clique_corenumber_mex will no longer work.

Thanks for the reply.
I have tested the branch matlab-bindings, it fails at the cmake stage.
make[2]: *** [googletest-populate-prefix/src/googletest-populate-stamp/googletest-populate-download] Error 1
make[1]: *** [CMakeFiles/googletest-populate.dir/all] Error 2
make: *** [all] Error 2

CMake Error at /opt/homebrew/Cellar/cmake/3.21.4/share/cmake/Modules/FetchContent.cmake:1017 (message):
  Build step for googletest failed: 2
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.21.4/share/cmake/Modules/FetchContent.cmake:1146:EVAL:2 (__FetchContent_directPopulate)
  /opt/homebrew/Cellar/cmake/3.21.4/share/cmake/Modules/FetchContent.cmake:1146 (cmake_language)
  /opt/homebrew/Cellar/cmake/3.21.4/share/cmake/Modules/FetchContent.cmake:1189 (FetchContent_Populate)
  CMakeLists.txt:55 (FetchContent_MakeAvailable)

This is weird, I think it should be resolved now, please get the latest version of matlab-bindings or you can set BUILD_TESTS to 'ON'.


livestream chat fall out issues

[x] getting prompt for switch channel on channels that don't belong to the user (from a report)

[ ] if you're the first person to comment on a livestream, no chats show.  (saw this twice, even happened on a chat that already had comments on it, and I couldn't see a new comment). Maybe web socket not connecting in some cases?

How is that possible? Why would claimIsMine return true if the channel doesn't belong to him?

hehe - claim is mine, not channel is mine :)
So creators would see this on all their livestreams

fixed a couple other items - add as moderator, replying to others (couldn't see as claim owner) and moderation tools not showing for creator (similar bug to claim is mine).

[ ] noticed switch channel doesn't do anything.
[ ] I couldn't filter out already added mods from the add moderator menu - see slack for potential bug with activeModeratorInfo


CycloneDDS and eProsima Micro XRCE-DDS Communication in ROS2

I'm currently working on a project on ROS2. I'm using STM32F446ZET6U on my controller circuit and ROS Humble in my computer. MicroROS (STM) is using eProsima Micro XRCE-DDS, Nav2 (ROS2-HUMBLE-NAV2) is using CycloneDDS.
In default behavior when I send a goal with NAV2 and the goal becomes successful state, Nav2 should send a twist message which should stop to robot.
And this becomes my problem: Sometimes stop message doesn't reach to the STM and it causes robot turning around itself.

Note: I don't know for sure if this is happening because of DDS's difference but this is the most reasonable reason.
Note: Another thing I don't know is this could be also happening while robot is also going to somewhere but we can't know for sure because Nav2 sends twist messages all the time. If one message doesn't reach, next message will reach. (There are 10 ms time difference between 2 twist messages.)

Hello @yigitboracagiran Micro XRCE-DDS does not ensures compatibility with Cyclone DDS


Use system DNS servers for upstream_servers default?

Copying @amfranz from https://github.com/phinze/landrush/pull/57#issuecomment-40389634

In my opinion, both things should happen: change the default value for the upstream_servers  setting to RubyDNS::System::nameservers as well as change landrush's DNS server logic to never delegate queries for .vagrant.dev upstream but rather respond with "domain not found" if no match is found.
When I configure landrush to use the system DNS servers, I observe delays when answering DNS queries and landrush crashes sometimes. I watched the network traffic with wireshark, here is what I found:

Queries for *.vagrant.dev that landrush can not answer and therefore delegates upstream trigger a query loop between dnsmasq and landrush (one delegates to the other, continuously).
Queries for *.vagrant.dev that landrush can answer seem to work initially, but sometimes also trigger a query loop if the DNS client sends a IPv6 AAAA query in addition to the A query (because landrush always delegates the AAAA query, which then loops).
Sometimes landrush crashes with Malformed message smaller than two bytes received in rubydns-0.7.0/lib/rubydns/handler.rb:112. I don't know the reason for this.

We should add this as an option ala config.landrush.upstream host-system

We should also consider an option for turning off upstream entirely.  This would require that VMs get a proper /etc/resolv.conf ... perhaps config.landrush.upstream disabled ?

I'm not using landrush anymore. Feel free to reopen if you still want this.


[RFC] Away from static id's for services

This enlarges the system uid/gid range 6-fold, from 100 to 600 ids. This
is a preventative measure against running out of dynamically allocated
ids for NixOS services with isSystemUser, which should become the
preferred way of allocating uids for non-real users if DynamicUser isn't applicable.
Motivation for this change
We're running out of static uid/gid's in the standard range from 0 to 400, only ~85 are left: https://github.com/NixOS/nixpkgs/blob/9fe0552e4db1253e0a714ed50e288cde217ddab1/nixos/modules/misc/ids.nix#L341-L344
While it might be possible to assign another range for static id's, that's just an ugly solution, and having to declare static id's has always been a bit of a pain.
A better solution is to not assign static id's for services, but to use NixOS dynamic user allocation (happening by default, when uid/gid = null). Specifically with isSystemUser = true such that ids get allocated in the range SYS_{U,G}ID_MIN (400) - SYS_{U,G}ID_MAX (499 before this change, 999 after), meaning the range above 1000 can be used exclusively by real users.
Why extend it to 999? Because a limit of 100 ids means that over the lifetime of a NixOS system, users can only ever run 100 different services, since id's aren't repurposed after a service is disabled (See a57bcd38b49bfe9d048b12de3c839bc72b298d2e), which is a bit on the low side. And 999 (={U,G}ID_MIN-1) is also the default value anyways, see man login.defs.
This means that instead of having a limit of 400 static uids for all NixOS services in nixpkgs, we have a limit of 600 dynamic uids for all NixOS services ever enable on a single system.
But isn't it bad to not use static id's for services?
I don't think so. One reason I can think of for having static id's is for some service that needs to transfer its files across NixOS machines, but this is not the case for most services. Another reason might be that loading data from backups into a new NixOS installation will make services not work due the mismatch of data and service ids. This is however not a problem if /var/lib/{u,g}id-map gets restored as well, and also not a problem if services use StateDirectory or systemd.tmpfiles which fixes permissions on service start.
See https://github.com/NixOS/nixpkgs/issues/60732#issuecomment-510027542 for a previous discussion
cc @ryantm @arianvp @aanderse @edolstra

While not directly a problem, this is not beneficial for @jameysharp's move to all-static uid's in https://github.com/NixOS/nixpkgs/pull/64594

Is it possible and/or are there plans to unassign the existing ~300 IDs, moving them to either isSystemUser or DynamicUser? (assuming that the fact they already exist in passwd/uid-map/whatever means they can just remain as-is on existing systems)

I believe it would be safe to switch services that don't need static uid's to isSystemUser (because existing systems will get the same id's from /var/lib/nixos/{u,g}id-map). DynamicUser might also be safe if systemd can handle this transition, this should be tested first.

Last I recall reading about DynamicUser it was explicitly stated as a goal that it be able to handle seamless transitions for existing systems (I believe their particular approach is just to treat it as if DynamicUser weren't set if the user already exists on the system?). Certainly yeah stuff to test, just wondering since it seems like it may be unnecessary to keep many of them reserved for the future, which could widen the range of usable system IDs further.
(though systemd is meant to handle the transition, if nixos removes deleted users from passwd that may or may not cause problems; really depends on whether StateDirectory= is the whole story or not for a given service I guess?)

Unfortunately moving to DynamicUser for many of the existing nixos modules will be difficult because the dataDir pattern (or maybe in this case anti-pattern).

So, after some discussion in the IRC channel, it looks line roon-server doesn't work with DynamicUser enabled, as the backup mechanism needs to be able to write to a persistent location and DynamicUser would make managing permissions for this directory impossible.

Yeah so it might be the case that we can't use DynamicUser as much as we'd like to

use StateDirectory or systemd.tmpfiles which fixes permissions on service start.

chown -R $datadirectories could be very-very slow if there are many files.
For hadoop it is unacceptable slow, could take hours.
Perhaps the same for databases  which could grow big (postgres, arango, etc), I just had no experience to grow them as big as hbase on hadoop.

My understanding is that DynamicUser is only intended for services that don't have persistent state.

@edolstra there is some allowance for persistent data. See 'Persistent Data' section of http://0pointer.net/blog/dynamic-users-with-systemd.html

My understanding is that DynamicUser is only intended for services that don't have persistent state.

Incorrect.  It's only meant for services that don't share state between services. Persistent state is definitely possible, as long as it's defined through StateDirectory=,CacheDirectory=,LogDirectory= etc

@volth StateDirectory and co. won't chown recursively when the top-most directory already has the correct perms (source: man systemd.exec), so this can be used for such cases.
systemd.tmpfiles doesn't have such a mechanism unfortunately. It can either chown recursively with Z or it doesn't chown at all if that's not used (the d directive only does anything if the directory doesn't exist yet) (see man tmpfiles.d)

I'd prefer this being a proper RFC :)

I made this a full RFC, see above

AFAICT, systemd ignores login.Defs and instead relies on compilation flags to decide the uid pool size.
So it seems you'd have to change this.

@asymmetric Yeah, but I think this is only relevant for users created through useradd, because the dynamic ids allocated by NixOS use the limits in update-users-groups.pl to write /etc/passwd directly
Will do that change too

FYI NixOS/rfcs#52 is in Final Comment Period

@asymmetric Now applied the change to the systemd build flags too. Will probably have to switch to staging because of this.
@GrahamcOfBorg eval

Turns out that the ranges defined in the systemd compile time options really don't matter that much, they're only used by systemd features like ConditionUser=@system and systemd-sysusers (which is apparently another way to allocate ids, maybe we could even use that for NixOS at some point).
The ranges in login.defs are only used for mutable users/groups added with useradd/groupadd/newusers.
And the ones in update-users-groups.pl are used by NixOS to allocate its declaratively defined users.
I added this info to a comment.
Also added links to the issues regarding runtime configuration of systemd ranges.

NixOS/rfcs#52 is now accepted and I think this is ready to be merged.

Hehe, the error on aarch64 is deceivingly related-looking:
error: all build users are currently in use; consider creating additional users and adding them to the 'nixbld' group

But really that only seems to occur as a result of heavy aarch64 builder usage, nothing with this PR.


babel-sublime jsx package lacks support

Preliminary Steps
Please confirm you have...

[x] reviewed How Linguist Works,
[x] reviewed the Troubleshooting docs,
[x] considered implementing an override,
[x] verified an issue has not already been logged for your issue (linguist issues).

Problem Description
https://github.com/github/linguist/blob/001ca526694a32a5ac4c977a79032ced0b8c0aca/grammars.yml#L245-L247
The babel-sublime jsx grammar has not been updated in over a year, and there are known issues with it.  In one of the open issues, it was suggested that there are alternative packages with more support. https://github.com/babel/babel-sublime/issues/368#issuecomment-471160838
Naomi and JS Custom were the suggested alternatives.

It looks like @pchaigno, @lildude, and @Alhadis were involved in the most recent update of the jsx grammar - https://github.com/github/linguist/pull/4223.
Are any of you the right people to get some traction on this?

@aforest-gvl sorry about the delay in responding, I've not had the time to prioritise any Linguist work recently.
So the babel-sublime/JSX grammar is an interesting one. The grammar used for JSX has a very long and complicated history as you'll be able to see from the discussions in https://github.com/github/linguist/pull/4223 (the PR that switched us to using a fork of babel/babel-sublime) and https://github.com/github/linguist/pull/3779 and https://github.com/github/linguist/issues/3775 and https://github.com/github/linguist/issues/3044 - this last one has the most history, and it's not pretty.
So back to your request... I've looked at those two grammars and neither are going to be suitable as they're both Sublime 3-specific grammars and not TextMate compatible. Linguist only supports TextMate compatible grammars.
If you know of another TextMate-compatible grammar that we could use that is still maintained and doesn't exhibit any of the problems you're inferring the current grammar suffers from, please feel free to open a PR request to switch to that grammar.  You can find details on replacing the grammar in the CONTRIBUTING.md.

@lildude Thanks for the information!  Unfortunately, I am not aware of any well-maintained TextMate compatible grammars for jsx.  I'll keep an eye out for one and follow up if I find one, but for now, it looks like there's not much we can do.


Fix salary migrations

In this PR

Add salary column
Add rake task to convert salary fields to new string field

Todo

[ ] Once deployed to production, execute rake task
[ ] Merge salary input changes to master
[ ] Execute rake task again to catch any jobs created while between previous rake task and deploy
[ ] Create a PR with the migrations to remove old columns

I'm merging with @cpjmcquillan's blessing to get it moving.


Windows: paths to files in commands folder are broken

This issue has resurfaced: https://github.com/vdemedes/ronin/issues/13
I see errors such as: Cannot find module 'c:\dev\vend-tools\commands\C:dev\vend-tools\commands\mycommand.js
I'm using version 0.3.9 of ronin and looking through commits I haven't seen any significant updates that would fix this by simply using the newest version.
Node Version is 0.10.43

Tested with:
	  console.log(path.replace(/\//g, separator));
	  console.log(path.replace(/\//g, separator).replace(/^./, function ($1) {
        return $1.toUpperCase();
      }));
	  console.log(path.replace(/\//g, separator).replace(/^./, function ($1) {
        return $1.toUpperCase();
      }).replace(join(_this.path, "commands"), ""));
	  console.log(path.replace(/\//g, separator).replace(/^./, function ($1) {
        return $1.toUpperCase();
      }).replace(join(_this.path, "commands"), "").replace(separator, ""));

Outputs:
c:\dev\vend-tools\commands\configure.js
C:\dev\vend-tools\commands\configure.js
C:\dev\vend-tools\commands\configure.js
C:dev\vend-tools\commands\configure.js

Which means the code in windows starts breaking due to the last .replace(separator, "") in the chain ... there is probably a good reason why you have it there, so I'm wondering what purpose does this serve in non-windows systems ... or can I submit a PR after removing it?


Linting.

We're gonna need a good linter that isn't too strict like the default AirBnB one and one that isn't too slack like the ESlint-recommended.
I'm getting a headache from the Air-BnB linter.
THoughts on this one? https://github.com/CyberiumShadow/selfbot/blob/review/.eslintrc.json
@hkwu

Where'd you get all those rules from? 🤔
But anyways I think the Airbnb rules can work, I'll edit some of the rules so it's not going to hand out 500 errors like it did before. Plus we have the benefit of being able to get new rules when the npm package is updated.

Those rules are my personal ones


Black screen, or messy history.back() navigation

Ionic version:  (check one with "x")
[ ] 1.x
[x] 2.x
I'm submitting a ...  (check one with "x")
[x] bug report
[ ] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:
navController do navChange even when the transition is not a page, eg: a Loading triggers navChange(direction) method in deep-link.js#line354
this could raise back screen or messy history.back() navigation
For a temporary fix:
update file ./node_modules/ionic-angular/navigation/nav-controller-base.js
replace following
#line766    if (transition.isRoot()) {

with
#line766    if (transition.enteringPage && transition.isRoot()) {

Other information:

Ionic info: (run ionic info from a terminal/cmd prompt and paste output below):
Your system information:

Cordova CLI: 6.4.0
Ionic Framework Version: 2.3.0-201703241812
Ionic CLI Version: 2.1.14
Ionic App Lib Version: 2.1.7
Ionic App Scripts Version: 1.2.3
ios-deploy version: Not installed
ios-sim version: Not installed
OS: OS X El Capitan
Node Version: v6.10.0
Xcode version: Xcode 8.0 Build version 8A218a

Hello! While we appreciate you opening an issue with us i am going to close this issue and ask that you open a new one that has the issue template filled out please. Thanks for using Ionic!


Pre-yiisoftmailer upgrade - branch: Psalm Level 4 Testing: 273 Static Analysis Errors on Level 4 mostly related to below message.

What steps will reproduce the problem? Refer to below error
What is the expected result? No errors
What do you get instead? Below Type Errors
Additional info

Q
A

Version
1.0.?

PHP version

Operating system

ERROR: InvalidReturnType - src/User/UserRepository.php:57:22 - The declared return type 'Yiisoft\Data\Reader\DataReaderInterface<int, App\User\User>' for App\User\UserRepository::findAllPreloaded is incorrect, got 'Yiisoft\Yii\Cycle\Data\Reader\EntityReader' (see https://psalm.dev/011)
* @psalm-return DataReaderInterface<int, User>
ERROR: InvalidReturnStatement - src/User/UserRepository.php:62:16 - The inferred type 'Yiisoft\Yii\Cycle\Data\Reader\EntityReader' does not match the declared return type 'Yiisoft\Data\Reader\DataReaderInterface<int, App\User\User>' for App\User\UserRepository::findAllPreloaded (see https://psalm.dev/128)
return $this->prepareDataReader($query);

Psalm Level 1 Completed


Specified file encoding as UTF-8

When exporting a .bib file from Zotero, the default encoding seems to be UTF-8. However, it is not currently specified on the Academic script. This was causing issues when there were characters such as μ. I made a small change to the editFM.py file to specify the encoding.

Thanks @jwtay1 !


[BUG] RemoteShardsBalancer cannot rebalance shards as expected

Describe the bug
When rebalancing searchable snapshot indices, we first calculate the average number of primary shards that each node should has. In current implementation, the formula is as follows.
(totalNumberOfRemotePrimaryShards + totalNumberOfUnassignedShards)/totalNumberOfRoutingNodes

https://github.com/opensearch-project/OpenSearch/blob/e8ee6db87e55f66e28b46fac90bf2a4b33755160/server/src/main/java/org/opensearch/cluster/routing/allocation/allocator/RemoteShardsBalancer.java#L247-L251
If a cluster has both search nodes and dedicated data nodes, this average number of shards calculated using the current formula may be lower than the actual number.. I think that the formula needs to be adjusted as follows:
(totalNumberOfRemotePrimaryShards + totalNumberOfUnassignedRemoteShards)/totalNumberOfSearchNodes

Related component
Search:Searchable Snapshots
To Reproduce

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
RemoteShardsBalancer should rebalance shards as expected
Additional Details
Plugins
Please list all plugins currently enabled.
Screenshots
If applicable, add screenshots to help explain your problem.
Host/Environment (please complete the following information):

OS: [e.g. iOS]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

@kotwanikunal @andrross you might be interested in this :)


Code Formatting GitHub Workflow Created ✔

Related Issue
Closes: #395
Description of Changes
I have created a new workflow which Check format of code means Pretier and workflow code is added into  : .github/workflows
Screenshots

@ighoshsubho Please Review my PR :)

Congrats @Nishitbaria 🎉, Your PR got merged! Keep contributing like this in GSSOC'23.


Release Color Pages and Template-X Fixes and Enhancements

Please always provide the JIRA issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Test URLs:

Before: https://main--express--adobecom.hlx.page/express/
After: https://stage--express--adobecom.hlx.page/express/

This one is releasing changes in stage into main, but might be affecting/blocked by https://github.com/adobecom/express/pull/56, which is synching main from the upstream repo.

We can either wait for the upstream main -> main synch, and then merging main -> stage before we release stage -> main. Or we can do the stage -> main now without waiting for the main -> main, which might make the main -> main more difficult but will make the later main -> stage easier. WDYT @qiyundai @apganapa @vhargrave

We can either wait for the upstream main -> main synch, and then merging main -> stage before we release stage -> main. Or we can do the stage -> main now without waiting for the main -> main, which might make the main -> main more difficult but will make the later main -> stage easier. WDYT @qiyundai @apganapa @vhargrave

Personally think we should let main -> main happen first. At least one of them doesn't have conflicts now.


Encoding error with special characters within the webinterface

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:

[x] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[x] I am convinced that my issue is new after having checked both open and closed issues at https://github.com/opnsense/core/issues?q=is%3Aissue

Describe the bug
This bug affects the OPNSense webinterface.
On some (but not all) pages special character like ä/ö/ü cannot be displayed correctly.
This seems to be somewhat related to the encoding although website encoding is set to UTF8
which is perfectly fine.
If I change a tab back and forth e.g. in the surricata settings the special characters (umlauts) are suddenly there again or cannot be displayed again.
To Reproduce
Steps to reproduce the behavior:

Go to any page with umlauts (prerequisite: you are using a language with umlauts like 'German')
Click on any page with umlauts e.g. Services -> Intrusion Detection -> Management
The special characters are not displayed correctly. Instead there is a Unicode error <?>
See the encoding error

Expected behavior
The characters should be displayed correctly (ä,ö,ü)
Describe alternatives you considered
I double checked the selected language in the webinterface.
Screenshots

Relevant log files
I was not able to find any related error in the logs
Additional context
Environment
OPNsense 21.7-amd64
FreeBSD 12.1-RELEASE-p19-HBSD
OpenSSL 1.1.1k 25 Mar 2021
Intel(R) Core(TM) i5-4440 CPU @ 3.10GHz (4 cores)

Does this patch help? https://github.com/opnsense/core/pull/5071

Does this patch help? #5071

Yes this commit seems to fix this bug.

I'll just file this under cleanup. I have no idea why it only fails sometimes and something slightly related fixes that even though it's not needed in the first place.


Changing radio option from Other fails

Expected behaviour

After selecting Other and entering a value, changing to a different radio option updates my select.

Actual behaviour

After selecting Other and entering a value, any changes of radio selection are not stored unless the Other value is cleared manually.

Steps to reproduce the behaviour

Launch test_radio.json
On "What is your favourite breakfast food" select "Other" and enter a value
Select the "Eggs" radio option
Save and continue
See that the next question incorrectly shows the text entered into "Other" in the "Do you really want ____ for breakfast?"
Click previous and see the wrong option selected

Technical information
Browser

Chrome

Operating System

macOS Sierra

Screenshot

None

Defect passed re-test in pre-prod


[BUG] RuntimeError: Loop is not running

Versions:

fsspec                        2023.9.0
s3fs                          2023.9.0

On my Sanic app startup, I'm getting the following warning message:
/opt/python/lib/python3.10/site-packages/s3fs/core.py:546: RuntimeWarning: coroutine 'ClientCreatorContext.__aexit__' was never awaited
  loop.create_task(s3.__aexit__(None, None, None))

Which I think is then what is leading to this exception later on:
RuntimeError: Loop is not running

The RuntimeError did not appear previously on version 2023.6.0.
However, the error only seems to occur on app startup. The app seems to still work fine afterwards.

I think the bug is because create_task is called without saving a strong reference to the task: https://github.com/fsspec/s3fs/blob/7dd0e368f3121f44ec215c870ca44206afaf68e6/s3fs/core.py#L570
From the docs for https://docs.python.org/3/library/asyncio-task.html#asyncio.create_task:

Important: Save a reference to the result of this function, to avoid a task disappearing mid-execution. The event loop only keeps weak references to tasks. A task that isn’t referenced elsewhere may get garbage collected at any time, even before it’s done.

Perhaps
return loop.create_task(s3.__aexit__(None, None, None))

? It's not obvious where we should stash the task. If only call_soon() or its threadsafe variant would handle coroutines.

Perhaps
return loop.create_task(s3.__aexit__(None, None, None))

Then your caller would need to solve the same problem :/
I'm not 100% sure if it's actually safe to call loop.create_task from a finalizer by the way -- I would suggest instead using asyncio.run_coroutine_threadsafe. I believe finalizers can occur between any two bytecodes, so you run the risk of corrupting state in your asyncio implementation, or deadlocking it.
How about having a private set in your module that you store tasks in? You can delete them with an add_done_callback cleanup step on the future returned by run_coroutine_threadsafe. You'd need to protect the set with a lock, to avoid races if users have multiple event loops on separate threads.

Would you like to code that suggestion into a draft PR?

You'd need to protect the set with a lock, to avoid races if users have multiple event loops on separate threads.

The FS instance has exactly one thread, otherwise nothing would work. Of course, it could be used from other threads.


Windows defender报毒

系统给提示，Trojan:Win32/Wacatac.H!ml

Hi @RadixIsatidis!
Thanks for submitting this issue. We believe that this is a false positive as they occurs on .Net apps previously (See https://github.com/dotnet/runtime/issues/35167). We submitted the app to https://www.microsoft.com/en-us/wdsi/filesubmission to check for malware and after that, we'll give you the result.

This is the answer from Microsoft analyst:

We cannot reproduce any detection on the file. If the detection is still observed, follow the steps below to capture support log files from the system reporting detection.
From an elevated command prompt, change to directory "%programfiles%\windows defender" and execute mpcmdrun.exe with option GetFiles:
cd "%programfiles%\windows defender"
mpcmdrun.exe -GetFiles
All created log files will be compressed into MPSupportFiles.cab. Please send us the detected file and MPSupportFiles.cab using https://aka.ms/wdsi. We will continue the investigation once we receive the support log files.
Thank you for contacting Microsoft.

Currently, we close this issue. If the problem occurs again, reopen it.


Oxigraph server - authentication support

Hi, fantastic project!
It would be awesome to have authentication (and perhaps authorisation) support for the SPARQL and graph store endpoints in the Oxigraph server. For example, you can have the store as a public facing read-only SPARQL endpoint while the SPARQL update endpoint is protected with basic auth.
I would love to contribute to this project. I don't have any experience in Rust (but this project has inspired me to learn it). I mainly work in Python.
Some options to implement basic auth:

NGINX (easiest but probably not user-friendly in terms of deployment)
Bundle a Python Flask/FastAPI proxy with a Next.js frontend in the Docker image of Oxigraph to handle and manage basic auth

I can help with this, and implement role-based access control and create an admin dashboard similar to RDF4J and GraphDB

Implement auth in Oxigraph server (in Rust) and use a Next.js frontend for the admin dashboard.

The chosen option will obviously affect future feature implementations such as authorisation.
If we go with the latter two options, we can use a file-based JSON (or RDF) store. This makes it very easy to deploy and modify things for sys admins (following GraphDB's approach).
Let me know your thoughts.

Authentication and authorization should be built in Oxigraph. I really like how Flureedb is doing authorization with smart functions (currently only clojure is supported but JavaScript support is planned)

Hi! Thank you so much for stepping in @edmondchuc @ansarizafar
I see two different points here:

Authentication/authorization.
A nice admin dashboard frontend. It would be much welcome and a nice addition compared to the current very limited JS interface.

About authentication/authorization, I currently use Nginx. This way, I could use all the Nginx plugins to do authentication, filtering, load balancing...
Personally, the feature I miss the most at the moment is the ability to limit the execution time of SPARQL queries to avoid overloading the server with resource-consuming queries.
I fear that adding authentication to Oxigraph means having to add a significant set of authentication providers (static user/password, LDAP...) even if there is currently with Oxigraph only three possible authorization levels: nothing, read and read-write.
I would be very curious about the practical use cases you have for authentication/authorization to see how well we could support them without having to build yet another authentication/authorization system. But if there are use cases where it makes sense to have authentication/authorization inside of Oxigraph server, I am definitely fine to have them integrated there.
An admin dashboard would be very nice and welcome. If I understand your message correctly, there are two approaches here (please, correct me if I am wrong):

Static assets served directly by the Rust server just like it's already done for the current simplistic UI. It has the advantage of easy build and deployment but basically requires to use plain JS and CSS and only relies on JS libraries that do not require a build step.
Have a separate server for the admin dashboard. But it requires to proxy the Rust server through the dashboard, to have a frontend proxy, or to proxy the dashboard server through the Rust server. It also adds an extra build step (build the dashboard).
Personally, I would be more in favor of option 1 because it would be much simpler to build and deploy. But it adds a lot of constraint on the kind of framework/library that could be use frontend-wise.

I would be more in favor of option 1 because it's easier for deployment, packaging and does not add new dependencies. But if it makes the dashboard significantly more difficult to implement, then option 2 might make more sense.

Hi @Tpt, yes looks like this thread originally started on authentication/authorization but quickly got conflated with a nice admin dashboard 😄.
I understand you favor option 1 but there are some things to think about if we do go this route. Where is auth handled here? In the rust server I assume. In this case, I am not sure how much I can help out since I am not knowledgeable in Rust development at all (currently - I can always learn).
For me, it will be easier to go with option 2. We can create an MVP much faster with Python (at least for me). If there are performance considerations, we can always re-implement it at a later date back into the Rust server.
The architecture for option 2 will look something like this.
Let me know your thoughts.

In my option 1 I see two options for auth.
a. It is not managed at all. The admin dashboard has full access on the database and people who want auth have to restrict the access to the admin dashboard using nginx or something. It's an "admin" dashboard so it might not be a big deal.
b. It would be managed by the Rust server itself.
For an MVP, indeed your option seems good. However, I would like to still allow users to just run Oxigraph without admin UI and proxy from a single Docker container. Running a single 20MB container on top of a Debian image is much simpler than having to deal with a complete network. In this option we would have "oxigraph server" that would be the minimalist Rust server and something like "oxigraph workbench" (just like rdf4j workbench or mysql workbench) that would provide the full set of features. If auth get traction we might take the time to convert it to Rust and move it to the server version.
What do you think about it?

Authentication should be part of rust server .

Authentication should be part of Rust server .

Yes, definitely. However, it seems that @edmondchuc does not feel able to implement it in Rust at the moment and I would prefer to focus myself on features more useful to me first like performance improvements, full test search, RDF-star and JSON-LD support. If you want to step in and implement authentication in Rust server I think it would be very much welcomed.

Hi all,
This is a very interesting idea.
Because most of the administration functionality (setting timeouts on queries, some sort of auth) would be managed in Oxigraph in Rust, I don't see much of a reason to write a separate admin backend in Python, as it would probably just be forwarding the requests. There could be good reasons for separating them though, I just can't think of them right now.
My preferences for the frontend would be something like a React Next.js app that gets exported to static HTML + JS. This would then connect to whatever endpoint is configured in the UI's settings (could be localhost, <IP_ADDRESS>, or a remote endpoint)
This could be served either by:

bundling the static files with the Rust binary (the downside is that the DB version and app version would be tied, which is probably not a great thing)
any web server the user wants (e.g. nginx in a Docker container)
on a static web hosting service (free ones like Netlify or Github pages would work) as long as Oxigraph adds CORS headers that allow those connections. The static web hosting would mean that we could automatically push updates from CI/CD, and the user wouldn't have to maintain anything.

In a few weeks I'll have some time to maybe write an admin UI if we can decide on what the functionality should be. I'd also agree with @Tpt that we should focus on the minimal set of features to start. I think query timeouts is probably good to start with.

Because most of the administration functionality (setting timeouts on queries, some sort of auth) would be managed in Oxigraph in Rust, I don't see much of a reason to write a separate admin backend in Python.

I agree. However I personally don't have these features very high on my personal TODO list, so if someone wants to implement them in a proxy because they fill unable to do them in Rust, it is fine for me as a temporary solution.
+1 To be able to build a "static" app.  Having it would not prevent any of the 3 usecases you suggest.

In a few weeks I'll have some time to maybe write an admin UI if we can decide on what the functionality should be.

Thank you! It would be amazing! For me, the most important feature is to be able to easily send query and updates from the UI and get some idea of which data are in there. But it might require to solve #94 first to be efficient.

Hello,
I'm starting using oxigraph, and as I'm also involved on other projects that use Solid, I think it can be great to look on:
https://solidproject.org/TR/oidc
(and maybe useful in the future to provide a compliant API to Solid project)

Regarding Solid-OIDC, there is existing work.


To Do Webapp

Close #125
Participating in Codepeak

update readme with local setup steps

clone code line not correct in readme


buildkite-agent: 3.35.2 -> 3.36.1

Description of changes
https://github.com/buildkite/agent/releases/tag/v3.36.0
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[x] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

3.36.1 was just released, and so I've updated this branch to target that version instead.

Result of nixpkgs-review pr 174067 run on x86_64-linux 1

1 package built:

buildkite-agent


Refactor CLI args controller

The file lyricurator.py calls different functions based on the user's choice of CLI arguments. However, running the bot with just -hs or -hal for example won't work as in the code it requires notwitter to be set to true while it should work alone just fine

mutually exclusive arguments shouldn't be anded together..this defeats the purpose of mutual exclusion

@AsyncDeveloper245 would you like to work on this?

I will go through it and revert back to you! if that's fine?

ok
have fun 😄


Automated cherry pick of #4152: fix: 私有云同步的sku归属于default region

Cherry pick of #4152 on release/2.12.
#4152: fix: 私有云同步的sku归属于default region

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.12@651ded2). Click here to learn what that means.
The diff coverage is 0%.

@@              Coverage Diff               @@
##             release/2.12   #4154   +/-   ##
==============================================
  Coverage                ?   6.87%
==============================================
  Files                   ?     501
  Lines                   ?   84779
  Branches                ?       0
==============================================
  Hits                    ?    5832
  Misses                  ?   78453
  Partials                ?     494

Flag
Coverage Δ

#aFlag
6.87% <0%> (?)

Impacted Files
Coverage Δ

pkg/compute/models/skus.go
1.32% <0%> (ø)

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 651ded2...3d1bd11. Read the comment docs.

/lgtm

/approve


JavaScript

JavaScript
User Story
As a boot camp student
I want the prework notes to be structured on a webpage
So that I can easily find and read information
Acceptance Criteria
GIVEN a Prework Study Guide website
WHEN I view the study guide
THEN I see the four topics I learned listed along with a suggestion on what I should study first

done :)


How to make header fixed at top?

Hi GeekyAnts,
I was looking for any prop or styling that can make the header in my application fixed on top. So that whenever i scroll down, it don't go up with the content.
Thanks and regards.

@mdmush
<Container>
   <Header>
     ....
   </Header>
   <Content>
      .....
   </Content>
</Container>

This syntax of NativeBase component fixes the Header to the top by default.


bug: PlatformException - dlopen failed: library "libsecurity.so" not found

[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(java.lang.UnsatisfiedLinkError, dlopen failed: library "libsecurity.so" not found, null, null)
Any idea on this?

Hello @chongmengkuan.
Thanks for raising this issue. Can you provide full stacktrace of error?
Thanks.

I also got this error just on an emulator. A build seems to run fine
Error was raised on this emulator
Pixel_4_API_30  • Pixel 4 API 30  • Google • android
This is a google play emulator.
But didn't happen on a
Pixel_4a_API_31 • Pixel 4a API 31 • Google • android
Non google play emulator.
Not sure if google play has anything to do with it or the android version
Flutter version
Flutter 3.19.4 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 68bfaea224 (6 days ago) • 2024-03-20 15:36:31 -0700
Engine • revision a5c24f538d
Tools • Dart 3.3.2 • DevTools 2.31.1
Stack trace
E/flutter ( 3476): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(java.lang.UnsatisfiedLinkError, dlopen failed: library "libsecurity.so" not found, null, null)
E/flutter ( 3476): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:651:7)
E/flutter ( 3476): #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:334:18)
E/flutter ( 3476):
E/flutter ( 3476): #2      main (package:obscured/main.dart:46:3)
E/flutter ( 3476):
Hope this may help

Hello @chongmengkuan , @karlisparcell ,
could you check if the solution proposed in this issue (https://github.com/talsec/Free-RASP-Android/issues/18#issuecomment-1667376785) helps to resolve your problem?
Kind regards,
Talsec team


Phoenix/usergroup put

Description
adding put request to usergroup api endpoint that allows someone to update User entry
Issue
ch134917
Test plan
wrote a test

@ttung can you help me? my test is failing, i think it has something to do with syncing the sessions? Or do you know what I'm doing wrong? I checked that the view PUT option worked manually with pdb and the tos field gets updated, just in the test the session seems like it's not getting updated?