PluginLoader.dll

im unable to find  PluginLoader.dll in the files

Did you download the zip file starting with "PluginLoader-" from the releases page?

cant find pluginloader.dll. can only see pluginloader.sln

With the redesign of github, there is no "releases" page, only code. The list of files shows no dll files that can be downloaded.

Thank you for that info.
Next, there is no Bin64 folder for a steamcmd server setup. Attempted the dll files with the rest of the dll files under X:\steamcmd\spaceeng\DedicatedServer64 but it displays this error. Do you know what the steamcmd alternate folder location would be?

You can't use Plugin Loader on dedicated servers. That is totally outside the use case of this program because servers have their own plugin system and no in game gui.

understood, thank you for your help


Hangs forever with Event library on Github Actions

Example file .github/workflows/testing.yml never finish. If remove extension event will be work correctly.
name: Testing

on:
  push:
    branches: [ '**' ]
  pull_request:
    branches: [ 'main' ]

jobs:
  postgres:
    name: Testing
    runs-on: ubuntu-latest

    strategy:
      fail-fast: true
      max-parallel: 1
      matrix:
        php-version: [ '8.2' ]

    env:
      extensions: sockets,pcntl,event

    services:
      postgres:
        image: postgres
        env:
          POSTGRES_PASSWORD: postgres
        ports:
          - 15432:5432
        options: >-
          --health-cmd pg_isready
          --health-interval 10s
          --health-timeout 5s
          --health-retries 5

    steps:
      - name: Set up PHP ${{ matrix.php-version }}
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php-version }}
          extensions: ${{ env.extensions }}
      - run: |
          echo '{"require": {"amphp/postgres": "^2.0"}}' > composer.json

      - name: Composer install
        run: composer install --no-progress --prefer-dist --optimize-autoloader

      - run: php -r 'require_once "vendor/autoload.php"; $pool = new \Amp\Postgres\PostgresConnectionPool(\Amp\Postgres\PostgresConfig::fromString("host=localhost user=postgres password=postgres port=15432")); print_r($pool->execute("SELECT 1")->fetchRow());'

There is an incompatibility with ext-ev and ext-pgsql which also causes hanging. I wonder if the same is true for ext-event? Were you using ext-pgsql or ext-pq? I'm assuming the former since I don't see anything about installing pq in the action config.

By default ext-pgsql


Tagged pointers marshalling

Currently we crash when tagged pointers are marshalled to JavaScript as wrapper objects on iOS 7 - 64 bit. This affects roughly 3% of all devices (statistics).
The reason lies in a bug in the Objective-C runtime, which seems to be fixed in iOS 8:
NSNumber *number = @123;
objc_setAssociatedObject(number, ...); // Crashes

Possible workarounds:

Unfold each pointer separately to JSValue (easier, but object equality won't work)
Use a WeakGCMap from pointer to JSValue

Reproduced on iPhone 5s with 7.1.1.


rewrite extension client and upgrade tokio

replace lambda-extension crate with inline extension client to reduce binary size by another 1MB.
-rwxr-xr-x  1 sunhua  staff   3.7M Jan  7 13:22 target/release/lambda-adapter

Upgrade tokio to 1.24 for improved performance
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

An extension tell Lambda Service what events it's interested in by specifying the event names when it registers. Lambda will only send those events to the extension.
The adapter specified no event names at registration. So Lambda will not return any events to it. The NEXT call will block forever.

lambda-extension crate is a bit bloated. Probably should split into 3 crates: minimum base extension crate for extension api, logs api crate, and telemetry api crate.


Update assessment.md - FINAL Submission by Tamara Fine Skversky

Here is a summary of the changes I made to this article (spanning two separate change commits):
Title changed for clarity
Beneath Title Added "applies to" links at the top, which I saw in other articles and made sense here as well.
Intro: I trimmed it down significantly, and tried to remove jargon that seemed extraneous.  I also employed content reuse, by taking some text from an existing article, and applying it here.  It was preferable to the text that was in this version.  I did make some light edits to the "lifted" text however.
Body of article:

Reordered the content, adding headings and subheadings, blockquotes (notes), code script, bullets, and so on where it seemed to improve clarity.
Removed details about management commands, as it seemed like a diversion from the main focus of the article.  I instead put a link to more information about management commands in the references at the bottom.
Added bullets to the links in the KQL in other services
Corrected the References section title at the bottom, and at least 1 spelling error in one of the links.  I also reordered these links slightly, in the hopes that it was a more intuitive order.
In "Types of query statements", I added info I found in my research about the two types of statements... but tried to maintain focus in the article on the three (not two) types of user query statements.
Added some helper text introducing the example, and added a heading to that section as well, removing language that seemed too informal.

Items I would have liked to have added with more time and knowledge:

Concrete examples of each user query statement types.
A more thorough audit of the reference links, making sure anything relevant was included.

Note: I also debated about the title (using a colon, calling it "An Introduction", etc).  "Overview" would have also worked, and I hesitated about capitalizing the word "An" after the intro, given sentence case convention.
In any case, I hope this submission meets your standards.  Thank you so much for the opportunity.

Hello,
@microsoft-github-policy-service agree
Thank you!
On Tue, Dec 10, 2024, 3:14 PM microsoft-github-policy-service[bot] <
@.***> wrote:

@TFS-82 https://github.com/TFS-82 please read the following Contributor
License Agreement(CLA). If you agree with the CLA, please reply with the
following information.
@microsoft-github-policy-service agree [company="{your company}"]
Options:

(default - no company specified) I have sole ownership of
intellectual property rights to my Submissions and I am not making
Submissions in the course of work for my employer.

@microsoft-github-policy-service agree

(when company given) I am making Submissions in the course of work
for my employer (or my employer has intellectual property rights in my
Submissions by contract or applicable law). I have permission from my
employer to make Submissions and enter into this Agreement on behalf of my
employer. By signing below, the defined term “You” includes me and my
employer.

@microsoft-github-policy-service agree company="Microsoft"
Contributor License Agreement Contribution License Agreement
This Contribution License Agreement (“Agreement”) is agreed to by the
party signing below (“You”),
and conveys certain license rights to Microsoft Corporation and its
affiliates (“Microsoft”) for Your
contributions to Microsoft open source projects. This Agreement is
effective as of the latest signature
date below.

Definitions.
“Code” means the computer software code, whether in human-readable
or machine-executable form,
that is delivered by You to Microsoft under this Agreement.
“Project” means any of the projects owned or managed by Microsoft
and offered under a license
approved by the Open Source Initiative (www.opensource.org).
“Submit” is the act of uploading, submitting, transmitting, or
distributing code or other content to any
Project, including but not limited to communication on electronic
mailing lists, source code control
systems, and issue tracking systems that are managed by, or on behalf
of, the Project for the purpose of
discussing and improving that Project, but excluding communication
that is conspicuously marked or
otherwise designated in writing by You as “Not a Submission.”
“Submission” means the Code and any other copyrightable material
Submitted by You, including any
associated comments and documentation.
Your Submission. You must agree to the terms of this Agreement
before making a Submission to any
Project. This Agreement covers any and all Submissions that You, now
or in the future (except as
described in Section 4 below), Submit to any Project.
Originality of Work. You represent that each of Your Submissions
is entirely Your original work.
Should You wish to Submit materials that are not Your original work,
You may Submit them separately
to the Project if You (a) retain all copyright and license information
that was in the materials as You
received them, (b) in the description accompanying Your Submission,
include the phrase “Submission
containing materials of a third party:” followed by the names of the
third party and any licenses or other
restrictions of which You are aware, and (c) follow any other
instructions in the Project’s written
guidelines concerning Submissions.
Your Employer. References to “employer” in this Agreement include
Your employer or anyone else
for whom You are acting in making Your Submission, e.g. as a
contractor, vendor, or agent. If Your
Submission is made in the course of Your work for an employer or Your
employer has intellectual
property rights in Your Submission by contract or applicable law, You
must secure permission from Your
employer to make the Submission before signing this Agreement. In that
case, the term “You” in this
Agreement will refer to You and the employer collectively. If You
change employers in the future and
desire to Submit additional Submissions for the new employer, then You
agree to sign a new Agreement
and secure permission from the new employer before Submitting those
Submissions.
Licenses.

Copyright License. You grant Microsoft, and those who receive the
Submission directly or
indirectly from Microsoft, a perpetual, worldwide, non-exclusive,
royalty-free, irrevocable license in the
Submission to reproduce, prepare derivative works of, publicly
display, publicly perform, and distribute
the Submission and such derivative works, and to sublicense any or all
of the foregoing rights to third
parties.
Patent License. You grant Microsoft, and those who receive the
Submission directly or
indirectly from Microsoft, a perpetual, worldwide, non-exclusive,
royalty-free, irrevocable license under
Your patent claims that are necessarily infringed by the Submission or
the combination of the
Submission with the Project to which it was Submitted to make, have
made, use, offer to sell, sell and
import or otherwise dispose of the Submission alone or with the
Project.
Other Rights Reserved. Each party reserves all rights not
expressly granted in this Agreement.
No additional licenses or rights whatsoever (including, without
limitation, any implied licenses) are
granted by implication, exhaustion, estoppel or otherwise.

Representations and Warranties. You represent that You are
legally entitled to grant the above
licenses. You represent that each of Your Submissions is entirely Your
original work (except as You may
have disclosed under Section 3). You represent that You have secured
permission from Your employer to
make the Submission in cases where Your Submission is made in the
course of Your work for Your
employer or Your employer has intellectual property rights in Your
Submission by contract or applicable
law. If You are signing this Agreement on behalf of Your employer, You
represent and warrant that You
have the necessary authority to bind the listed employer to the
obligations contained in this Agreement.
You are not expected to provide support for Your Submission, unless
You choose to do so. UNLESS
REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, AND EXCEPT FOR THE
WARRANTIES
EXPRESSLY STATED IN SECTIONS 3, 4, AND 6, THE SUBMISSION PROVIDED
UNDER THIS AGREEMENT IS
PROVIDED WITHOUT WARRANTY OF ANY KIND, INCLUDING, BUT NOT LIMITED TO,
ANY WARRANTY OF
NONINFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
Notice to Microsoft. You agree to notify Microsoft in writing of
any facts or circumstances of which
You later become aware that would make Your representations in this
Agreement inaccurate in any
respect.
Information about Submissions. You agree that contributions to
Projects and information about
contributions may be maintained indefinitely and disclosed publicly,
including Your name and other
information that You submit with Your Submission.
Governing Law/Jurisdiction. This Agreement is governed by the
laws of the State of Washington, and
the parties consent to exclusive jurisdiction and venue in the federal
courts sitting in King County,
Washington, unless no federal subject matter jurisdiction exists, in
which case the parties consent to
exclusive jurisdiction and venue in the Superior Court of King County,
Washington. The parties waive all
defenses of lack of personal jurisdiction and forum non-conveniens.
Entire Agreement/Assignment. This Agreement is the entire
agreement between the parties, and
supersedes any and all prior agreements, understandings or
communications, written or oral, between
the parties relating to the subject matter hereof. This Agreement may
be assigned by Microsoft.

—
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/dataexplorer-docs/pull/2480#issuecomment-2531603893,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BNP3PKPTMJQUUVFZBJMWHJ32E3SKXAVCNFSM6AAAAABTK3OBYKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKMZRGYYDGOBZGM
.
You are receiving this because you were mentioned.Message ID:
@.***>

#hold-off

Hi all,
Just making sure you don't need anything further from me here.
My PR was submitted as an assessment, and I signed as requested.
Perhaps I'm cc'ed on the latest messages by mistake?
Thx,
Tamara
On Wed, Dec 11, 2024, 9:06 AM prmerger-automator[bot] <
@.***> wrote:

You typed hold-off, but the PR wasn't signed off, so nothing was changed.
—
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/dataexplorer-docs/pull/2480#issuecomment-2533823018,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BNP3PKMUYFEF7Y7R33YURED2E7QATAVCNFSM6AAAAABTK3OBYKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKMZTHAZDGMBRHA
.
You are receiving this because you were mentioned.Message ID:
@.***>

#please-close


Softwrap should match indent

Ok, this one may be a personal preference, but it drives me nuts that softwrap doesn't match the indent.

+1.0

+1, just showing my support for this, great work team!

I would like to tackle this (or, at least, offer my help), but I need guidance in order to get started. This should affect only rendering, therefore my understanding of the code led me to TokenizedLine.
In particular, softWrapAt(column) contains the code which converts one TokenizedLine into a left fragment (the line which will fit the current row) and a right fragment (the line which, probably, needs further splitting because it doesn’t fit the current line). The process repeats until no overflowing characters are found.
I have noticed also that TokenizedLine accepts an indentLevel parameter which, unfortunately, doesn’t have any effect on the resulting rendering (I assume this is why the issue hasn’t been solved yet, otherwise it would have been too simple :wink:).
Thus, as far as I understand, we would need a way to move the rightFragments towards right. However, this should be just a visual effect: even though my knowledge of the codebase is relatively limited, I’d say this change should not involve any modification in TokenizedLine’s tokens or text.
Now, a couple of questions:

Do you agree with my last assertion (e.g. indenting should be only a visual effect)?
Is there anyway to position a tokenized line arbitrarily (or in a way that could fit our purpose, e.g. renderFromColumn: 2)?
An alternative could be to place a “fake” token in front of the rightFragments (which would contain as many spaces as leftFragment’s indentation).
Is there any other pitfall which I am totally ignoring and that causes this to be tricky?

Thanks in advance to anybody who will help me out :pray:

Pinging @atom/core re @as-cli's questions

Do you agree with my last assertion (e.g. indenting should be only a visual effect)?

Yes, but we model it. The DisplayBuffer is responsible for the non-linear relationship between lines/characters on screen and lines/characters in the buffer, dealing with folds and soft-wraps.

Is there anyway to position a tokenized line arbitrarily (or in a way that could fit our purpose, e.g. renderFromColumn: 2)?

No, you're going to need to insert a phantom token. More details below.

An alternative could be to place a “fake” (read: special) token in front of the rightFragments (which would contain as many spaces as leftFragment’s indentation).

Check out how we handle hard tab characters, which map multiple spaces in screen coordinates to a single character in the buffer. This should be similar, but would map to zero characters in the buffer causing the cursor to skip that leading whitespace.

Is there any other pitfall which I am totally ignoring and that causes this to be tricky?

I think your phantom token approach sounds promising and was what I had in mind. It's hard to say what kind of issues might crop up with our coordinate mapping going from multiple characters on screen to zero in the buffer since we've never done that... with tab we map to one character. So that could be interesting. You'll just have to see what emerges I guess.

:trophy: Awesome - really wanted this feature!

This is fantastic, nice work.


SELECT aliases being referenced in WHERE statement clause Postgres

Describe the bug
Mikro seems to be using SELECT aliases in WHERE clause.
e.g.
SELECT "u0".*,
	"t1"."vendor_id" AS "technician_manager_vendor_id",
	"t1"."user_id" AS "technician_manager_user_id",
	"t2"."id" AS "technician_id"
FROM "user" AS "u0"
LEFT JOIN "technician_manager" AS "t1" ON "u0"."id" = "t1"."user_id"
LEFT JOIN "technician" AS "t2" ON "u0"."id" = "t2"."user_id"
WHERE NOT (("t1"."technician_manager_vendor_id","t1"."technician_manager_user_id") IS NULL)
ORDER BY "u0"."updated_at" DESC

Stack trace
InvalidFieldNameException: select "u0".*, "t1"."vendor_id" as "technician_manager_vendor_id", "t1"."user_id" as "technician_manager_user_id", "t2"."id" as "technician_id" from "user" as "u0" left join "technician_manager" as "t1" on "u0"."id" = "t1"."user_id" left join "technician" as "t2" on "u0"."id" = "t2"."user_id" where not (("t1"."technician_manager_vendor_id", "t1"."technician_manager_user_id") is null) order by "u0"."updated_at" desc limit 25 - column t1.technician_manager_vendor_id does not exist
        at PostgreSqlExceptionConverter.convertException (/Users/rstimmler/Code/mpx-api-service/node_modules/@mikro-orm/postgresql/PostgreSqlExceptionConverter.js:36:24)
        at PostgreSqlDriver.convertException (/Users/rstimmler/Code/mpx-api-service/node_modules/@mikro-orm/core/drivers/DatabaseDriver.js:192:54)
        at /Users/rstimmler/Code/mpx-api-service/node_modules/@mikro-orm/core/drivers/DatabaseDriver.js:196:24
        at processTicksAndRejections (node:internal/process/task_queues:95:5)
        at async PostgreSqlDriver.find (/Users/rstimmler/Code/mpx-api-service/node_modules/@mikro-orm/knex/AbstractSqlDriver.js:49:24)
        at async SqlEntityManager.find (/Users/rstimmler/Code/mpx-api-service/node_modules/@mikro-orm/core/EntityManager.js:106:25)
        at async UserResolver.usersConnection (/Users/rstimmler/Code/mpx-api-service/src/graphql/resolvers/user.ts:17:23)

To Reproduce
Steps to reproduce the behavior:

Triggered when adding a where clause to check if a relationship is null
Relationship has a composite primary key, both being an FK of another entity

User Entity
@Entity()
export class User extends BaseEntity<User> {
  @OneToOne(() => TechnicianManager, (technician_manager) => technician_manager.user)
  technician_manager: TechnicianManager
}

TechnicianManager Entity
@Entity()
export class TechnicianManager extends BaseEntityNoId<TechnicianManager, 'vendor' & 'user'> {
  @ManyToOne({ primary: true })
  vendor!: Vendor

  @OneToOne({ primary: true })
  user!: User
}

Where object
{
   "$and":[
      {
         "$or":[
            {
               "$not":{
                  "technician_manager":null
               }
            }
         ]
      }
   ]
}

Versions

Dependency
Version

node
18.11.0

typescript
4.8.4

mikro-orm
5.5.0

your-driver
postgres 14.3

FYI you can also use { technician_manager: { $ne: null } }, personally I'd prefer that over explicit $not operator. $ne stands for not equal and will be probably better supported than $not (which is somehow quirky).

Already got one:
import { Entity, ManyToOne, MikroORM, OneToOne, PrimaryKey, Property } from '@mikro-orm/core';
import type { SqliteDriver } from '@mikro-orm/sqlite';

@Entity()
class Vendor {

  @PrimaryKey()
  id!: number;

  @Property()
  prop!: string;

}

@Entity()
class TechnicianManager {

  @ManyToOne({ entity: () => Vendor, primary: true })
  vendor!: Vendor;

  @OneToOne({ entity: () => User, primary: true })
  user!: any;

}

@Entity()
class User {

  @PrimaryKey()
  id!: number;

  @OneToOne(() => TechnicianManager, technician_manager => technician_manager.user)
  technician_manager!: TechnicianManager;

}

describe('GH issue 3669', () => {

  let orm: MikroORM<SqliteDriver>;

  beforeAll(async () => {
    orm = await MikroORM.init({
      entities: [TechnicianManager],
      dbName: ':memory:',
      type: 'sqlite',
    });
    await orm.schema.createSchema();
  });

  afterAll(() => orm.close(true));

  test('$not operator on 1:1 inverse side', async () => {
    await expect(orm.em.find(User, { $not: { technician_manager: null } })).resolves.toEqual([]);
  });

  test('$ne operator on 1:1 inverse side', async () => {
    await expect(orm.em.find(User, { technician_manager: { $ne: null } })).resolves.toEqual([]);
  });

});

(generally, if I tag something as bug, it means I am able to reproduce)


ufs-weather-model-debug-env should contain all its dependencies

Right now, ufs-weather-model-debug-env contains only the additional dependencies that are not in ufs-weather-model-env. This has the advantage that someone who wants to build the ufs-weather-model in DEBUG mode needs to load the ufs-weather-model-env module first, and then the ufs-weather-model-debug-env module.
It would be better to explicitly list all the dependencies in ufs-weather-model-debug-env so that loading ufs-weather-model-env first is not required.

How about debug as a variant to ufs-weather-model-env?

How about debug as a variant to ufs-weather-model-env?

Yes, even better. I'll make this change together with the fms/fms-jcsda unification in one PR today.


Emotes not working with WezTerm under Windows 11

Describe the bug:
Found your program, wanted to try it out on my main Windows 11 installation. Followed instructions to install, installed WezTerm because I wanted to try it out with the emote support turned on. With default settings, program works fine. However, as soon as I turn emote support on in the config file, I get the error message:
"This terminal does not support the graphics protocol.
Use a terminal such as kitty or WezTerm, or disable emotes."
even though I'm calling the program from WezTerm.
To Reproduce:

Install twt from Rust Cargo.
Install WezTerm from official Windows Binary
Walk through initial setup provided when running twt for first time
edit config.toml to enable emote support
start twt from WezTerm
twt doesn't start but gives error message about unsupported terminal

Expected behavior:
twt starts with emote support enabled
Screenshots:

System:

Twitch-tui version: 2.6.3

Operating System: Windows 11 23H2

Terminal: WezTerm 20240203-110809-5046fc22

Shell: tried both default cmd.exe in WezTerm as well as bash 5.2.15(1)-release

Additional context:
Add any other context about the problem here.
Could be that I'm very much missing something while setting everything up here, but as far as I can tell from the official documentation from twt, I should have done everything right.

Hello! Thank you for the issue. I believe you're doing everything right, by what you've said.
I'll try to reproduce and fix the issue, since I think I've found what's causing it.

I think it's my bad for not updating the message, I dropped Wezterm support when I introduced unicode placeholders, as Wezterm does not support it yet.
I think twt version 2.6.1 is the last one which doesn't use unicode placeholders, so it should work with wezterm, although I don't have windows so I cannot test it on there.

Ah, I see. I thought the solution was that this and operator was supposed to be an and. Tested it, broke many things.

Well, terminal emulators that do not support graphics protocol should ignore the graphics protocol query in theory, but some do not, and some terminals do not even respond to the send device attribute query csi!("c"), which would result in an infinite loop.
That's why I added the env check, as kitty will always respond to those queries correctly.
If it is needed I can look into adding back the code to display emotes without unicode placeholders behind a feature flag, but the code is a lot more complicated than when using unicode placeholders. There is also a few bugs in there like #530.

Hi, I just wanted to report having a similar problem with Kitty on Ubuntu Linux 23.10, the unicode boxes show up in place of emotes, but no images. icating the emotes saved in .cache/twt/ works fine.
Versions:
twitch-tui 2.6.4
kitty 0.26.5
GNOME 45.2
Not sure what else could be relevant, feel free to ask me for additional info.

This sounds like a different problem to the current one. Could you open up a new issue? Thanks!

Even if Wezterm did support Unicode placeholders, there's no point trying it on Windows anyways.
See https://github.com/wez/wezterm/issues/1673.

I'll mark this as closed for now. Error message has been updated to reflect what twt currently supports.


Fixes Error 65 intermittent failures on CI

I bet it's failing because we have different simulators to boot. We'll have to add it as part of the Rake task I guess.

Nah, we're currently only using one iOS simulator (tvOS still not supported) and OS X. I changed the UUID to point to the simulator we're actually using. We'll see.


Fatal error: Uncaught Error: Call to undefined method Kopokopo\SDK\K2::initiateIncomingPayment()

I have the following code from the docs
I have installed the php package from composer using
composer require kopokopo/k2-connect-php
and this is the code
<?php
use Kopokopo\SDK\K2;

require 'vendor/autoload.php';

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

$options = [
    'clientId' => '',
    'clientSecret' => '',
    'apiKey' => '',
    'baseUrl' => 'https://api.kopokopo.com'
];

$stk = new K2($options);

$response = $stk->initiateIncomingPayment([
  'paymentChannel' => 'M-PESA STK Push',
  'tillNumber' => '',
  'firstName' => '',
  'lastName' => '',
  'phoneNumber' => '',
  'amount' => 1,
  'currency' => 'KES',
  'email' =><EMAIL_ADDRESS>  'callbackUrl' => '',
  'accessToken' => '',
]);

if($response['status'] == 'success')
{
    echo "The resource location is:" . json_encode($response['location']);
}

but i keep getting this error
Fatal error: Uncaught Error: Call to undefined method Kopokopo\SDK\K2::initiateIncomingPayment() in /var/www/html/stk.php:21

@britisharmy you are supposed to initialise the STKService using an initialised K2 instance. Below is a screenshot from the repo's README.

I have made amends and my code looks like this
<?php
use Kopokopo\SDK\K2;

require 'vendor/autoload.php';

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

$options = [
    'clientId' => '',
    'clientSecret' => '',
    'apiKey' => '',
    'baseUrl' => 'https://api.kopokopo.com'
];

$stk = new K2($options);
$mpesa = $stk->StkService();
$response = $mpesa->initiateIncomingPayment([
  'paymentChannel' => 'M-PESA STK Push',
  'tillNumber' => '',
  'firstName' => '',
  'lastName' => '',
  'phoneNumber' => '',
  'amount' => 100,
  'currency' => 'KES',
  'email' => '',
  'callbackUrl' => '',
  'accessToken' => '',
]);

if($response['status'] == 'success')
{
    echo "The resource location is:" . json_encode($response['location']);
}

However i still cannot trigger stk push on customers phone.

@britisharmy This is an issue with your implementation and not the SDK itself. You are only echoing if the response is successful so how would you know what error is being returned if you aren't printing it? Also, please note that you should be using the sandbox for development purposes, not production.
You can start by using postman requests so that you can troubleshoot and see where you are going wrong. You can also join discord and get help from the community using the following link: https://discord.gg/gjJyjjWvG9
Kindly note that there is already vast documentation that you are not utilising as there is a whole example app that shows how to use the SDK and 3 other documentations that cover the same. Ensure you read it properly before opening issues so that this platform is left open for actual issues with the SDK.

There is a lot to unpack here but lets start with the fact that this repo is broken and composer and git and sometimes even throws curl errors.
Today since the physical till was delivered to my office, call after call all you had for me is RTFM which is rather telling. The physical document with the TOS that you delivered on clause 9  does not complete the sentence which is comical for all the calls telling me to go read the manual.
Also, there was no way of knowing that there is a separate till number that starts with K. No docs for that as well. If you know where that is, point it here with a  link. There is no word on rate limits for the API push.
Kindly show me the "whole example" you talk of. Anyways, today was a wasted day, no truck left our facilities thanks to your generous vast documentation that "clearly" efficient in teaching how to use the API.
I have successfully managed to get it working and i never once looked at your  "working application" or whatever its being called.
For anyone else who may need it here it is https://gist.github.com/britisharmy/0fdd58919192d21795b22eaaf0810e78
I like KopoKopo service but you should consider having paid support if at all someone wants prompt technical assistance.


Windows: old version of node-gyp prevents updated version from running

On Windows 8.1 it looks like npm install -g node-gyp puts node-gyp under AppData\Roaming\npm\node-gyp.cmd, but this command somehow launches a stale version under c:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js.
I've tried uninstalling and reinstalling, what's the right magic to clean this up? Moving c:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp out of the way doesn't work. I'm running a legacy node 0.10.34 and npm 1.4.28.

npm install -g node-gyp will install an updated node-gyp that can be run from the command line with node-gyp, but npm will still use its own bundled version of node-gyp - that is intended behavior.
The way to update the node-gyp used by npm is to update npm, but I believe your version still has a bug that prevents that. Can you install the latest v0.10 from https://nodejs.org/dist/latest-v0.10.x/ ? That includes npm v2 with a fix for that bug, so then you can npm install -g npm@lts and that will give you the latest version of npm (and with the latest bundled node-gyp) for v0.10.

Thanks 0.10.46 worked!


update mgmtagent image to 1.2.0

update the Management Agent docker image to version 1.2.0

hi @prasebha , @niravg75, Could you bump up the oci-onm chart version ? Also, please add a quick changelog.

done


Some thing about buffer.

When i switch buffer(shutcut is C-x b),there also a lot of    ***autoloads.el,here are the examples
 regex-tool-autoloads.el | dsvn-autoloads.el | htmlize-autoloads.el | lua-mode-autoloads.\ el | gnuplot-autoloads.el | flycheck-ledger-autoloads.el | ledger-mode-autoloads.el | flycheck-clojure-autoloads.el | cider-autoloads.el | queue-autoloads.el |
I think they are not usable,why not consider exclude them?besides,there also many ***autoloads.el in recentf-open-files.I want to konw how to exclude them,could you help me?

I think they have resulted from installing a bunch of packages: the package installation process involves generating those files using a temporary buffer, and it looks like they get added to the recent files list. There may be a way to customize recentf to prevent that, but I'm not convinced it would be worth the effort.

Thanks for you help,i can not agree with you more,it is not  worth doing this.


Allow exceptions to be resolved from LogEntries

Previously two log entries would be added for errors, making doing anything with them quite

This should be good to go now.

Hmm with the following code:
[TestFixture]
public class TestCaseScratch : TestCase
{
    [Test]
    public void RunTest()
    {
        using (var host = new HeadlessGameHost())
        {
            host.Run(new TestGame());
        }
    }

    private class TestGame : Game
    {
        protected override void Update()
        {
            base.Update();

            throw new Exception("aa");
        }
    }
}

Two exceptions are thrown: the first is the exception in the sample. The second is an object disposed exception on the window. This second exception should not be allowed to happen, as it messes with debug as well (debugger incorrectly points to the disposal exception callstack).


Settle on a web3 library

Viem has added support for local signing, so we are free to use it. Decide on it vs the local ethereum.js.

I asked how would viem handle the load-balancer-caused Infura issue here and the answer is that in case the node would support filters then it should work. The potential issue with the filter approach is if there would be a maximum allowed block range set by Infura which ChatGPT says is 10000 blocks but I couldn't find on Infura website so the model might be hallucinating.
In case the node didn't support filters it would cause issues.
Viem is a wrapper around the JSON_RPC methods and for this reason we could use the eth_getLogs method and use our own sync loop with Viem.

+1 to not relying on filters, but note that querying events up to latest_block_num makes the implementation susceptible to reorgs (basically anything that queries up to the latest block, whether it is polling, filters, or websockets, will have this problem).
An easy solution is to run two epochs behind the tip of the chain, to ensure finalization, but this introduces a massive delay. The other option is actually reacting to reorgs. Both filters and websockets have built-in mechanisms for that: they report logs with a "deleted" flag when they are removed. But that requires a persistent connection, which may not be easy to guarantee.
When polling, you can check for changes in the blockhash of the last known block number, and that will tip you off that you've hit a reorg. I got a sample implementation of this here, but probably the most robust solution is using something like https://github.com/ethereumjs/ethereumjs-blockstream that keeps a local stream of blocks, checks for reorgs, and triggers events whenever it detects one. And it's provider-agnostic.

@spalladino Good point. In Aztec Connect we used the easy solution. As I am looking at the Terraform config the MIN_CONFIRMATIONS param was set to 3 in prod. We've never had any issues but it would probably be a good idea to revisit this because given that we will have decentralized sequencer from day we will need to strive for higher robustness. But from what I know there are basically no significant reorgs since the merge.

True, I scolled past 50 pages of https://etherscan.io/blocks_forked and the deepest reorg I found was 2. We don't want to get bit by this the day there is an actual reorg, but it's also something we may not need to work on atm.

Just keep in mind that setting MIN_CONFIRMATIONS to anything greater than zero may break devnet setups with automine (ie hardhat network or anvil instances that only mine new blocks when there are new txs, so if there's no activity no new blocks get mined, and you never reach the number of confirmations needed).


Sorting - happening only for 1 page

Sorting: if you click on Explore - after clicking on the top of the column (for example, sort by Price), it will sort offers only on the open page. However, the price should be sorted based on all the items (on all pages), not only one page. This way, you see the highest price only on the open page - the most expensive items can still stay "hidden" on the other pages.

Originally posted by @JustLuuuu in https://github.com/kodadot/nft-gallery/issues/3562#issuecomment-1195261907

👋


Queueing mechanism for data3d and texture loading

Scope & Features:
Implements @stavros-papadopoulos queueing mechanism from the archilogic editor into 3dio.js
Design:
Semantic knowledge is being used in order to load data3d and textures in a specific sequence for a smoother loading perception. There are multiple loading queues processed in the following order:
var queues = [
  'architectureGeometries',
  'architectureTexturesLoRes',
  'interiorGeometries',
  'interiorTexturesLoRes',
  'architectureTexturesHiRes',
  'interiorTexturesHiRes'
]

Any data requeusts other than data3d and textures are not being queued.
How to use:
specify queueName or queue option in:

io3d.storage.get
io3d.utils.data3d.load
data3dView.set

@stavros-papadopoulos to test this:

start local dev server with npm start
go to http://localhost:8080/examples-browser/a-frame/

It works :). I commented out all of the performance monitoring code.

@stavros-papadopoulos thx for testing! it was very easy to migrate your clean code from the archilogic editor. i've got positive results during testing as well :) will merge into master


Proposal: Add support for multiple cells types

Why I want to register multiple cells
I had to implement as follows
| iconCell at index[0] | titleCells|

Hi @syatyo! Thank you so much for your PR. I have a few comments on your proposal.

I don't think we should add cellReuseIdentifier to the PagingItem protocol. Registering multiple cells is quite an edge-case and I don't think we should force everyone to implement it. There is always a one-to-one mapping between items and cells, so I think it's safe to use String(describing: self) of the item type as the cell identifier.

Instead of changing menuItemSources to an array I was thinking of getting rid of that property altogether. I was thinking of making the API similar to the UICollectionView cell registration, like this:

pagingViewController.register(LoadingCell.self, for: LoadingItem.self)
pagingViewController.register(nib, for: LoadingItem.self)

By default, PagingTitleCell will be registered.
What do you think about that?

Thank you for your comments @rechsteiner !

It's good idea using String(describing: self). I had wondering about using proper cell-reuseIdentifier in making a collection view cell. Your approach seems better 👏

New APIs are so simple and good!

I'll try to commit these changes.

Hi @rechsteiner !
I have just committed them following your comments. Please review them🙇

Awesome, thank you so much for adding this 🙌


How do I create the prefs for naming the lights on the webbased install?

Hi @taburineagle
Still working very very nicely here, my youtube studio is almost fully automatic, when I press the correct button on the stream deck, it lowers the blinds, saves the states of the normal lights, turns on the studio light when the blind is low enough, just perfect!
I had previously removed the prefs files for naming of the lights, as they messed up everything.
You solved that afterwards, but I can't create new namings for the lights in the webinterface, so how do I create them manually?
I know they are placed under light_prefs, but what is the naming scheme of the file, and the format inside the file?

Hello @fribse!  It's been a while 😊
I'm glad everything's working out for you so far!  I'm working on a few NeewerLite-Python things (and quite a few other things, hence the delay), but haven't had a chance to make the CLI preferences engine yet.  Here is the format:
The files are named after the MAC address of the light, with the colons removed, and in all caps - so:
AA:22:BB:33:CC:44 would result in a file called AA22BB33CC44 in the light_prefs folder.
The file itself is laid out with 3 parameters, delimited with a pipe character (|):
up to 0.11 -
(custom name for light)|True/False (whether to allow wider CCT ranges)|True/False (only allow CCT mode for non-RGB lights)
0.12 (not released yet) -
(custom name for light)|min, max (custom color temp range for CCT)|True/False (only allow CCT mode for non-RGB lights)
In 0.12, based on a list of Neewer lights from their website suggested a few months back by @PrezP, I'm working on adding the entire list of Neewer lights known (at least up to the current day) and their specs, color ranges, RGB-ability, etc., and also adding custom CCT temperature ranges for lights that might not be in the list yet - that's upcoming.

Hmm, the name doesn't show in the WebUI.
The lights

So I created a file called CB7258582664 and placed it under light_prefs
The file just contains a single line:
Front venstre|False|False
I've also updated it to 0.12, so I guess the second parameter is wrong?
But the custom name is just empty.

Hmm... even with the "False" in the 2nd position, that should still work... interesting.  I'm wondering if the program's still seeing the custom file when it loads.  Does the log output say
A custom preferences file was found for CB:72:58:58:26:64!
when it finds that light?   I'm wondering if something odd is going on with where NeewerLite-Python is installed, because I think I remember you had it in /opt/NeewerLite-Python, correct?  Odd in that I haven't really extensively tested NL-P on the Pi yet.
Unless, is this still a running session from before?  NeewerLite-Python only looks up the custom prefs when it first loads the light... so maybe that's it?

I also want to add the ability to change the name of the light from the HTTP server eventually - I think I found a JavaScript function I can use which I can then tie into the existing commands on the HTTP server to prompt someone for a new name, and save it if the user clicks on "Rename light" or something along those lines.

OK - @fribse - it's not commited yet, but I have a JavaScript solution written for custom names - click on "Edit", it'll prompt you what you want to change the name to.  Give it a new name, it'll change the name, write the light_prefs file with the new name and continue on - cancel out or keep the name the same, it doesn't do anything.

I've added the JavaScript button to the HTML page for renaming lights in the last series of commits - I'm not 100% ready to release it as the new version yet, as I want to go over everything first, but I should be done with all of that by the end of the weekend!

@fribse - OK, I've officially released 0.12 now.  The JavaScript button should be good to go on the HTML page, if you click that, with or without a pre-existing preference for the light in the light_prefs folder, and provide a new name, it will change the name of the light in the HTML UI, as well as generate the requisite prefs file.

Wow cool, I did make it work with the prefs file, but I had to restart the neewerlite software to get it to pick it up.
I'll close this issue, thankyou for the great work!

Oh, and the naming works perfectly with 0.12

You're welcome!  Yeah, you would need to close it and re-open it < 0.12, or disconnect from the light and rediscover it, but 0.12 changes that - good to know that's sorted 😊


[ES DateTimeV2] Spanish DateRange extraction issues

Spanish DateRanges fails is somewhat common case, and in corner cases.
Specs exist and are marked as "EXTERROR".

@LionbridgeCSII, can you prioritize this one and #2367 next? Thanks.


Added option to shorten dir path

With this option you can shorten the output of the dir segment by specifying
POWERLEVEL9K_SHORTEN_DIR_LENGTH=2

I love this feature! Really fantastic idea.

:) Good to hear.
I am not 100% content with it, but it works with plain zsh.


fix: didn't use alias when importing logic package in handler.go when groups are using for api generation.

need rebase @zze326


Use of library for 20 data bits

I have 20 data bits (not bytes) and a total of 60 bits that can be used for redundancy.
I should be able to correct 5 errors.
How can I use this library for bits - is this even possible?

Hi. Designing for these sizes will depend a lot on your expected failure scenario. Will bits be randomly flipped. Will some be missing, etc.
Remember that rs codes does not by itself tell you which values are correct - you need to have that information.
It seems Turbo codes or LDPC codes is more what you need.

Thank you for the answer, I will look into the alternatives to see if they better fit my needs.
By looking at the encoder example code of this library, I realized, that hashes are required if one does not know if the data is valid.... Since my data bits are extracted from the an image, I could tell, if I am unsure what its value really is (0/1) - in such a case, I would apply reconstruction... so I think an additional hash is not required in that case.
My main concern is, that it I do not seem to have strict control over the size of the generated data the library produces... (I have only 60 bits in total). So the goal is, to put an integer number (that can be represented with a maximum of 20 bits) into its total available space of 60 bits....
I basically porting over code from a legacy Java application, that seems to use a custom Galois-field with the following parameters GaloisField(2, 19, 4); where 2 = alpha, 19 = irreducible and 4 element length. The RSEncoder(5, 10) where 2 = plain, 10 = redundant is used to encode the integer. The solution is a bit array of length 60. The application claims, that it can correct 5 errors.
So would there be a chance to reproduce what the Java application does with this library?

I don't know the library, so I can't really tell you.
Closing for now.


Disable implicit reexport

This disables implicit re-export of modules. This is one of the stricter rules in MyPy and if someone is using this project and that flag then they will not be able to import modules off of the top level modules.
import strawberry

@strawberry.field
...

Would throw an implicit reexport error for a user.

Description

Types of Changes

[ ] Core
[ ] Bugfix
[ ] New feature
[x] Enhancement/optimization
[ ] Documentation

Checklist

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[x] I have tested the changes and verified that they work and don't break anything (as well as I can manage).

Hi, thanks for contributing to Strawberry 🍓!
We noticed that this PR is missing a RELEASE.md file. We use that to automatically do releases here on GitHub and, most importantly, to PyPI!
So as soon as this PR is merged, a release will be made 🚀.
Here's an example of RELEASE.md:
Release type: patch

Description of the changes, ideally with some examples, if adding a new feature.

Release type can be one of patch, minor or major. We use semver,so make sure to pick the appropriate type. If in doubt feel free to ask :)

Would it be better to use __all__?

Looks like using __all__ might be a cleaner solution:
https://mypy.readthedocs.io/en/stable/config_file.html#confval-implicit_reexport
# This won't re-export the value
from foo import bar
# This will re-export it as bar and allow other modules to import it
from foo import bar as bar
# This will also re-export bar
from foo import bar
__all__ = ['bar']

Yeah I'm indifferent. The reason I didn't use __all__ is because we have some __init__ files that also have full classes in them. It's a bit more verbose to also add these to __all__ instead of just explicitly re-export.
I'll update it.

@jordangarside I think I'd prefer to use __all__, seems a lot nicer, since we are reexporting a lot of things.
I wasn't able to find a linting rule for it, do you know if flake8 has it?

There isn't an off-the-shelf one. It also turns out we don't only need this in __init__ files since we also re-export from other files. I'm just going with this for now.
Just something people will have to be aware of as a potential source of confusion/issues (different exporting depending on if __all__ is in the file or not).

Updated the PR with __all__ syntax.


Various fixups cleaning up after recent PRs

Updating instructions to fix broken demos (e.g. component IDs)
update laser frame and laser scan generation to use forward pointing frame
update confbot_security  to allow component containers to be created
update console output to match dashing packages behavior
Add TODOs for regressions:

https://github.com/Karsten1987/roscon2018/commit/cda9a1d74584af24f5619e48c322b0fa75d32f63
https://github.com/Karsten1987/roscon2018/commit/71bb6e0fc3ff2444009b4f6264215b52599f4d36#diff-8adff0182dc7d7a358c7a45293a933b2R344

Moved ROS1 bag replay in it's own subsection and added todo:

https://github.com/Karsten1987/roscon2018/compare/fixups?expand=1#diff-8adff0182dc7d7a358c7a45293a933b2R344

Fixes https://github.com/Karsten1987/roscon2018/issues/40

Can't approve my own PR but feel free to merge this after https://github.com/Karsten1987/roscon2018/pull/48 @Karsten1987


Make DCode more abstract and reusable

The current processing of dalvik bytecode is closely related to the dex file itself.
In some situations it would be useful to just parse some bytecode - regardless of the dexfile and add the information about strings/types/classes/fields later.

Actually there is already a solution for this: you can work like in the unittests by supplying a fake classmanager. Then you run the linearsweep algorithm over the bytecode.


LRU cache for the weather

To reduce the # of API calls to OWM.

OpenWeatherMap has a high quota, so this isn't worth the effort.


fix typo

Should be insertAfter

It's not a typo.
If you look at the code, you'll see that the second parameters are different:
refEle.parentNode.insertBefore(ele, refEle.nextSibling); // Insert after
refEle.parentNode.insertBefore(ele, refEle);             // Insert before

Got it, thanks for the explanation.


fix: Updated Composer Electron app menu

Description

Currently we do not set the application menu, so Electron uses the default menu which contains links to Electron documentation.

This PR addresses that and explicitly sets the menu so that it only contains info / functionality relevant to Composer and not Electron.
Task Item
closes #2832
Screenshots
Windows
File

Edit

View

Window

Help

Linux
File

Edit

View'

Window

Help

Mac
I don't have a Mac, but feel free to add screen shots if you test it out!

Things look good except for the Electron menu item. See attached.

Can we clean this up?
Can we also add a link in the help menu jumping out to the Composer docs? https://docs.microsoft.com/en-us/composer/

Doh! Yeah, I'll fix that and add a new menu item.

Updated "Help" menu:

Also fixed up the labels on the Mac "App" menu


Theming/Typography - can't simply set only font family, and when I do some fonts don't change

Bug type
Component
Component name
Typography, MudNumericField
What happened?
I made what I was hoping was a minimal theming, to change the font across the whole site. I figured if I just set Default, then everything else would inherit from it:
<MudThemeProvider Theme="Custom" />

@code{
    private static string[] fontFamily = new[] { "serif" };
    private static Typography typo = new Typography()
    {
        Default = new() { FontFamily = fontFamily },
    };

    private MudTheme Custom = new MudTheme()
    {
        Typography = typo,
    }
}

Nothing changed on site, so I specified everything I could find in Typography:
    private static Typography typo = new Typography()
    {
        Default = new() { FontFamily = fontFamily },
        Body1 = new() { FontFamily = fontFamily },
        Body2 = new() { FontFamily = fontFamily },
        H1 = new() { FontFamily = fontFamily },
        H2 = new() { FontFamily = fontFamily },
        H3 = new() { FontFamily = fontFamily },
        H4 = new() { FontFamily = fontFamily },
        H5 = new() { FontFamily = fontFamily },
        H6 = new() { FontFamily = fontFamily },
        Button = new() { FontFamily = fontFamily },
        Overline = new() { FontFamily = fontFamily },
        Caption = new() { FontFamily = fontFamily },
        Subtitle1 = new() { FontFamily = fontFamily },
        Subtitle2 = new() { FontFamily = fontFamily },
    };

It "worked" but..

it doesn't seem to have merged with the defaults; instead they look to be overwritten. The site has an H4 and an H5 under it. It looks like:

The CSS for those have line-height/spacing:0px so the h5 and h4 end up on top of each other

some elements don't appear to acquire the "default" typography - you can see in the screenshot that the inputboxes are in Helvetica Neue. This latter point I can resolve by wrapping the entire page fragment in a <MudText Typo="Typo.body1"> but I'm not sure if this was how it was supposed to work

Expected behavior
I expected to just provide a font family, only, as part of the Default property on Typography and everything would switch font, including those things we don't specify Typo on like MudNumericField. Of course, this may be completely wrong compared to how it was intended to work, and some other thing like wrapping the whole component etc in a MudText is how it should be done.. In which case, maybe this bug report could be converted to a "bug with the documentation" report and some words added to the docs about to what extent Typography must be specified, what Default means/what uses it, and what to do about elements where Typo is not specified..
Reproduction link
try.mudblazor.com seems not working for me; it hangs then gives "app error occurred reload"
Reproduction steps

I added the theme code above to my mainlayout.razor and wired the theme provider up

I took the dark theme colors off the docs too, and they seem to apply OK, but I ended up struggling with the typography

Everything else is in the box above, and I think there will hopefully be enough to know whether these are truly bugs or are they by-design:

that not specifying line-height etc causes it to default to 0 (it's not a nullable proeprty so it's easy to see why it does) and "is that reasonable/in line with what the docs imply about 'if you don't specify, then the default applies' ? should the docs be amended to state 'supply all props' or should the code use e.g. nullables (or dictionary-backed-props where the key is absent if set is never called) so it can determine the difference between developer-didn't-supply and developer-supplied-0?

that Default doesn't seem to be a default on which the other Typos build

Relevant log output
No response
Version (bug)
5.1.4
Version (working)
No response
What browsers are you seeing the problem on?
Chrome
On what operating system are you experiencing the issue?
Windows
Pull Request

[ ] I would like to do a Pull Request

Code of Conduct

[X] I agree to follow this project's Code of Conduct

When using a different font, the MudTable's "Column Group and Text Alignment" has no effect.

You currently have to set all the property's.

If you only want to change the font set the property after the class is initialized.
@code{
    private static string[] fontFamily = new[] { "serif" };
    private MudTheme Custom = new MudTheme();

    protected override void OnInitialized()
    {
        base.OnInitialized();
        Custom.Typography.Default.FontFamily = fontFamily;
        ...
        Custom.Typography.Overline.FontFamily = fontFamily;
    }
}

A nice enhancement to the library would be to have a method on the Typography class that let you change all the font family settings at once.


bal build --dump-build-time should additionally print the info to the console

Description:
Currently bal build --dump-build-time writes the build time breakdown in to target/build-time.json file. This should be improved to print the information to the console as well.

Let's make this a hidden option as discussed.


chore(master): release 0.8.0

:robot: I have created a release beep boop
0.8.0 (2024-05-15)
Features

jdoc-spock gradle plugin (#24) (0188932)
JdocSpockPlugin byteBuddyVersion 1.14.15 (e51bcb7)
packages renamed in order to relocate on shadow and eliminate class conflicts between plugins (f2f2524)
shadow direct dependencies of projects on gradle.projectsEvaluated (e3fa4aa)

Bug Fixes

configure jdocSpock source set dependencies in JdocSpockPlugin (11390cf)
public SOURCE_SET_NAME for JdocSpockPlugin (bc0bb12)
removed reports dir output for jdocCucumberTest gradle task (ef3687c)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/boolivar/jdoc-test/releases/tag/0.8.0 :sunflower:


Drumkit

PR Description 📜
Add "Drum Kit"
Fixes #3

Mark the task you have completed ✅

[x ] I follow CONTRIBUTING GUIDELINE & CODE OF CONDUCT of this project.
[ x] I have performed a self-review of my own code or work.
[ ] I have commented my code, particularly in hard-to-understand areas.
[x ] My changes generates no new warnings.
[x ] I have followed proper naming convention showed in CONTRIBUTING GUIDELINE
[x ] I have added screenshot for website preview in assets/images
[ ] I have added entries for my game in main README.md
[x ] I have added README.md in my folder
[ ] I have added working video of the game in README.md (optional)
[x ] I have specified the respective issue number for which I have requested the new game.

Add your screenshots(Optional) 📸

Thank you soo much for contributing to our repository 💗

Thank you @rajatnai49 ,for creating the PR and contributing to our GameZone 💗
Review team will review the PR and will reach out to you soon! 😇
Make sure that you have marked all the tasks that you are done with ✅.
Thank you for your patience! 😀

Thank you  @rajatnai49 , for your valuable time and contribution in our GameZone 💗.
It’s our GameZone, so Let’s build this GameZone altogether !!🤝
Hoping to see you soon with another PR again 😇
Wishing you all the best for your journey into Open Source🚀


A leak is occurring with repeated use:floatingContent.

This is a slightly modified version of an example from the document.

  <button
    on:mouseenter={() => showTooltip = true}
    on:mouseleave={() => showTooltip = false}
    use:floatingRef
  >Hover me</button>

  {#if showTooltip}

      Tooltip

  {/if}

Repeat hover to repeatedly create and destroy the DOM containing the use:floatingContent. Then onComputed is verbosely called depending on the number of times the DOM is regenerated.
Is it possible that when the DOM containing the use:floatingContent is destroyed, the floatingContent is not properly cleaned up after?

In svelte-floating-ui/src/lib/index.ts, line 75, the return value of initAutoUpdate seems to expect a cleanup function, but the _autoUpdate function has been processed inside the tick promise, I think it is not passed to autoUpdateDestroy.


netpbm: 10.82.01 → 10.89.1

Motivation for this change
https://sourceforge.net/p/netpbm/code/3735/tree//advanced/doc/HISTORY
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Determined the impact on package closure size: 95.9M → 103.0M (31.7M just ${!outputLib})
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

@jtojnar doesn't work for me:
$ /nix/store/jbv7bjcxd1m6xn7hfdymsj173hpbnqa1-netpbm-10.89.1-bin/bin/ppmquant --version
/nix/store/jbv7bjcxd1m6xn7hfdymsj173hpbnqa1-netpbm-10.89.1-bin/bin/ppmquant: line 3: /nix/store/an59sy7q8c83qbfsih1g722z1apx9pni-netpbm-10.89.1/bin/.ppmquant-wrapped: No such file or directory

@sikmir sorry about that, fixed in 1459b34afa9


WIP: handle unsupported field names

Issue:
Whenever someone pushes documents containing unsupported field names, the entire push operation aborts because the automatic field creation is no longer possible.
Proposition
Return the list of invalid fields whenever the automatic field creation is not possible rather than returning error message from the API. That way, the user knows which fields are in error.
Also provide an option to auto format invalid fields instead of throwing an error.
The field should respect the following conditions:

Field names can only contain lowercase letters (a-z), numbers (0-9), and underscores. The field name must be at least one character long and must start with a lowercase letter.

Detection and listing 👍
Auto-fix 👎:
I think we should say the user what to do to sanitize his data, but sanitizing the field name in their stead is maybe a bad idea, because of the immutability of the name of a field.
Creating the missing one is OK because we're treating "valid input" and saving a call to the user, but here, we are doing some 'black magic' (yes, it's in the source code, but I don't expect the customer to go digging in it) to transform the fieldName.
So, to alleviate those points, while permitting fields name to be fixed on push, we should make it so the user is absolutely conscious of what is doing. To do so:

no auto-fix by default.
to auto-fix, the user has to provide a transformer string, i.e. (input:string)=>string
we can provide the one included in the PR as a static property, but the user would have to explicitly use it, i.e.:
new FieldStore(FieldStore.DefaultFieldNameFormater) (i.e. the user explicitly feed the default formatter to the process)

Detection and listing 👍 Auto-fix 👎:
I think we should say to the user what to do to sanitize his data, but sanitizing the field name in their stead is maybe a bad idea, because of the immutability of the name of a field.
Creating the missing ones is OK because we're treating "valid input" and saving a call to the user, but here, we are doing some 'black magic' (yes, it's in the source code, but I don't expect the customer to go digging in it) to transform the fieldName.
So, to alleviate those points, while permitting fields name to be fixed during a push, we should make it so the user is absolutely conscious of what they are doing. To do so:

no auto-fix by default.
to auto-fix, the user has to provide a transformer string, i.e. (input:string)=>string
we can provide the one included in the PR as a static property, but the user would have to explicitly use it, i.e.:
new FieldStore(FieldStore.DefaultFieldNameFormater) (i.e. the user explicitly feed the default formatter to the process)


Prevent sign up with 'judicialappointments.gov.uk' emails

What's included?
When an admin uses their gov.uk account to sign up as a candidate, it blocks them from signing in as an admin.
This happens quite often and has become a regular maintenance task.
There are firebase configurations which would allow multiple accounts to be held under the same email address, but that presents additional issues.
Instead this code uses regex to match the email field and present a validation error when<EMAIL_ADDRESS>is detected.
Who should test?
✅ Product owner
✅ Developers
✅ UTG
How to test?

Sign out.
Go to sign up page
type<EMAIL_ADDRESS>observe validation error

Risk - how likely is this to impact other areas?
🟢 No risk - this is a self-contained piece of work
🟠 Medium risk - this does change code that is shared with other areas
🔴 High risk - this includes a lot of changes to shared code
Additional context

PREVIEW:DEVELOP
can be OFF, DEVELOP or STAGING

@tomlovesgithub I have just tested this ticket and the message displayed on my screen is different to the message in this. See the attachement for your reference ticket

@tomlovesgithub just checked and FormField has a pattern prop which accepts a regex and a message to be displayed if the regex fails:

This'd do the trick wouldn't?

@tomlovesgithub just checked and FormField has a pattern prop which accepts a regex and a message to be displayed if the regex fails:  This'd do the trick wouldn't it?

Oh nice!


Remove console.log calls

disable debug #86

thx, I will do a publish tomorrow morning that will deactivate this debug in production. sorry abt that


Cannot see the local version page using docker in README

OS: window 10 using MINGW
I want to check the edited page running local server with using ./bin/dockerhub_run.sh.
After I run ./bin/dockerhub_run.sh and connect the server, I see the second image below. (this means that cannot connect to site)
This is my process about I described above.

Thanks in advance !

What is this winpty thing? I haven't heard about it. I think the problem is that this winpty doesn't properly map port 8080 to windows.
Have you tried windows WSL? That one should have no problem.

Hi, I've had the same problem while trying to build with Docker in Windows and I think I have landed on a solution.
From what I can tell, there is some problem with how the file directories are managed when running the script for the Docker image, and jekyll can't find the _config.yml file, as evident by the message Configuration file: none after running the script.
I have tried running the dockerhub_run.sh script in several shell environments: Command Prompt, Git Bash, and PowerShell (the default version that comes with Windows is PS 5.x), and none of these worked.
What finally solved my problem was installing PowerShell 7 and running the bash script in PS 7 as
(repo-dir)> bash ./bin/dockerhub_run.sh

After that, I could open my page in the browser as usual at http://localhost:8080/ and browse around.
I don't really know why that fixed the problem (I'm not very well versed in these technologies and how they work under the hood), but I hope this will be of help :).
Note: I have WSL2 installed to facilitate all the Docker functionality as recommended.

I have installed windows recently and I will try WSL Ubuntu and write my experience here.
I am wondering why everyone thinks so complex ... Just using an Ubuntu inside wsl should be fine in my idea. However this should be tested. Maybe things aren't as simple.

I tested this thing, and I had some problems. So, I created a docker-compose file. Just add a file named docker-compose.yml in your main directory and fill it with these instructions.
version: "3"

services:
  jekyll:
    image: amirpourmand/al-folio
    command: bundler exec jekyll serve --watch --port=8080 --host=<IP_ADDRESS> --verbose
    ports:
      - 8080:8080
    volumes:
      - .:/srv/jekyll

After that you can simply use docker-compose up.


fix of #377

According to the issue #377 `cmd` was not included in Pattern-Matching/Source-Code-(PHP)
This fix includes a singular backtick. According to the docs here, when text is enclosed in backticks php will execute it in a shell.
Since this is a pattern matching wordlist, a singular backtick should match this.

Thanks once again @molangning


kube-prometheus: Add Prometheus Operator alerts

We are missing some alerts for reconciling errors that might happen when running the Prometheus Operator. This PR will add these alerts to kube-prometheus.
/cc @brancz @squat

I've updated this to alert on 10% reconciling errors. I don't think we need to split these up in warning and critical.

I've addressed your points @squat. ☺


Sorry could not redirect to merchant site

Hello!
So i follow the documentation step by step but when i make a post request to 'insterswitch-pay' i always get this error 'Sorry could not redirect to merchant site'

You probably have a wrongly defined or an undefined redirect url. Please also confirm you used correct merchant ID and Pay Item ID

Hello!
So i follow the documentation step by step but when i make a post request to 'insterswitch-pay' i always get this error 'Sorry could not redirect to merchant site'
..


New aka.ms link

Aka.ms link name
examdemo
Category (Optional. Select None to auto-select)
None

Thank you for submitting aka.ms/examdemo. Your link already exists at akaSearch.net. 🙏✅


A new name needed, please vote

We have a name conflict.
To solve this, my tool needs a new name. Below are potential candidates suggested by great people. Please vote for your favorite. Thanks!

wpsitecheck

wpcheck

wpfox

wpinspector

wpverify

wpsense

wpeye

wpav

wpvs => WordPress Vulnerability Scanner

wpvu

wpnoevil

wpdefend

wpsave

wplupe

wpcheck

WordPress Vulnerability Scanner => wpvulcan / wp-vulcan


Ensure tests use ncgen/ncdump from the Python env; rationalise uses of ncgen.

This seemed desirable because I found that certain "assertCDL"s were working fine from the command-line but failing when run in PyCharm.  The problems occurred regardless of whether running via unittest or PyTest.
It was using a really old fallback version of ncdump with slightly different flag behaviour, and output in some cases.
N.B. no problems ever occurred in CI -- this is purely a developer convenience problem !
This is because spawned processes don't inherit the path extensions you get from a 'conda activate'.
It quite probably applies to Eclipse too, since that also controls PATH/PYTHONPATH in non-obvious ways.

Any idea what to make of the test failures?

You’ve probably already noticed, but the crashing worker failures appear in several recent PRs.

Any idea what to make of the test failures?

You’ve probably already noticed, but the crashing worker failures appear in several recent PRs.

Well I hadn't, I'd so far only seen my own.
But from re-spinning, it is always the same tests that are failing.
In the other latest ones, I think we have "most" of the same ones failing ...

failure
in #4791
in #4792
in #4794

lib/iris/tests/test_pickling.py::TestPickle::test_cubelist_pickle
X
X
X

lib/iris/tests/test_plot.py::TestPcolormeshNoBounds::test_zx
-
-
X

lib/iris/tests/integration/analysis/test_area_weighted.py::AreaWeightedTests::test_regrid_area_w_lazy
X
X
X

lib/iris/tests/integration/analysis/test_area_weighted.py::AreaWeightedTests::test_regrid_area_w_real_save
X
X
X

lib/iris/tests/integration/analysis/test_area_weighted.py::AreaWeightedTests::test_regrid_area_w_real_start
X
X
X

lib/iris/tests/integration/fast_load/test_fast_load.py::TestBasic__Iris::test_cross_file_concatenate
X
-
-

lib/iris/tests/unit/analysis/maths/test_subtract.py::TestBroadcasting::test_collapse_zeroth_dim
-
X
-

lib/iris/tests/unit/analysis/stats/test_pearsonr.py::Test::test_broadcast_cubes_weighted
-
X
-

lib/iris/tests/unit/plot/test_contourf.py::TestStringCoordPlot::test_xaxis_labels_with_axes
-
-
X

from re-spinning, it is always the same tests that are failing.
In the other latest ones, I think we have "most" of the same ones failing ...

Though from the messages, it appears to be like a timeout or resource failure ?
( but I haven't checked ALL the message yet )
The PyTest output is much harder to deal with than the older form >sigh<

I grabbed an older code version I previously used to debug a different problem.
The tests on that used to pass, but now have similar problems :
https://cirrus-ci.com/task/5930410508025856
So, it isn't to do with package versions or lockfiles, since that is still using older ones.
I suspect a resourcing issue with Cirrus or our account.
@lbdreyer also noted that where we have the usual orange block with the message  "Not enough compute credits to prioritize tasks", in that block we are have also getting the message "Container errored with 'OOMKilled'".
Sounds significant -- and I missed it up to now because of the spurious message you always get.

So, it isn't to do with package versions or lockfiles, since that is still using older ones

Could something have changed in the linux environment?  I’m thinking of #3993, where we started getting failures because glibc changed.

NOTE: made draft, as I want to include changes paralleling #4800, which is not yet merged, to get tests passing.
So this will now need a rebase before we're done.

So this will now need a rebase before we're done.

Now's the time 👍

So this will now need a rebase before we're done.

Now's the time +1

For starters, I've removed the last commit, which contained the cirrus hack.
It no longer conflicts
We'll just see how that goes ...

@trexfeathers OK we have problems with the CI that I don't understand.
Can you advise  ?

We now have "both kinds of test" here !
I expect a rebase is desirable, but right now pausing for #4809
(still in Draft)

Rebased.
Nearly there I hope

Good to go, I think.
Over to you @trexfeathers

Looking good @pp-mo. This deserves a What's New entry

hi @trexfeathers
Good to go now on this ? :pray:

hi @trexfeathers Good to go now on this ? 🙏

https://github.com/SciTools/iris/pull/4794#issuecomment-1160182786

Many thanks @trexfeathers !


adaptive card images loading from https://urlp.sfbassets.com

Could we have adaptive card images load from a teams.microsoft.com domain? (not https://urlp.sfbassets.com) Some users proxies enabled that prevent loading from anything other than teams.microsoft.com. Our apps images are not showing up on adaptive cards sent into the chat.

No, You cannot get images from teams.microsoft.com. Also the images which you have given in the adaptivecard should be publicly available. For more information could you please check this docs?


"gitconfig" gets overwritten by the agents SelfUpdate.

"gitconfig" gets overwritten from time to time.
I have installed an azure-pipeline-agent on a virtual machine. I am using git submodules. The submodules are mirrored on multiple locations. Since the build-agent user cannot and should not have access to all of the mirrored submodules, I use the following setting in the gitconfig file located under (AzureBuildAgent\externals\git\mingw64\etc):
[url<EMAIL_ADDRESS>insteadOf =<EMAIL_ADDRESS>This works exactly how I intend it to do. My problem is that my gitconfig file gets overwritten with a default file without my setting, after a few days.
This seems to happen during a SelfUpdate:
25.10.2019  09:30    <JUNCTION>     externals [C:\AzureBuildAgent\externals.2.159.2] [05.11.2019 10:24:32,82] Delete existing junction externals folder  [05.11.2019 10:24:32,82] Create junction bin folder  Junction created for C:\AzureBuildAgent\bin <<===>> C:\AzureBuildAgent\bin.2.160.0 [05.11.2019 10:24:32,84] Create junction externals folder  Junction created for C:\AzureBuildAgent\externals <<===>> C:\AzureBuildAgent\externals.2.160.0 [05.11.2019 10:24:32,84] Update succeed  [05.11.2019 10:24:32,84] Rename "C:\AzureBuildAgent\_diag\SelfUpdate-20191105-092430.log" to be "C:\AzureBuildAgent\_diag\SelfUpdate-20191105-092430.log.succeed"
Is there a way to prevent the azure-build-agent to do so, or configure it in some other manner to keep my url replacement?
Thanks in advance.

@averelon - Have you tried putting those settings in the global git config for the user running the agent instead of modifying the system gitconfig of git supplied with the agent? It should be C:\Users<user>.gitconfig

Problem Solved
Dear Tommy,
I have removed the url replacement from the system settings and moved it into the recommended location and the build still works like a charm.
Thanks a lot for your advice.
Many greetings,
averelon

@averelon - No problem at all. I am glad I was able to help!


improving sqlite/mbtile performance

After noticing I could not saturate the CPU with a sqlite seeding task on a non-SSD drive, I decided to investigate further.
I pinned down this performance issue to the store_tile method inmbtiles.py:MBTilesCache to the use of a db.commit() after each INSERT to the SQLite database.
So I tried reducing the number of calls to db.commit() by adding a counter and only making a COMMIT after something like 100 INSERTS. Obviously this is problematic when using a concurrency factor >= 2 or the mapproxy app is running and a client is making a tile request (since the database will be locked).
In my case this is not a problem since I'm running the seeding task offline and I manage to do concurrency by using multiple seed tasks (e.g. for different caches / different zoom levels), so I run the seeding task with -c 1.
Regardless, I'm facing a second issue. After my change, I started getting more frequent "database is locked" errors that were interrupting the seeding task. I discovered that the seeding main thread was making SELECT calls to the database to check if a tile is cached before inserting it to the worker task queue (_walk in seeder.py, under handle_uncached). I decided to deactivate this check (this is done by the worker task anyway). However this might not ideal since the problem will persist when doing a cleanup task (handle_stale). Perhaps COMMIT calls could be deferred to the store_tiles methods which already commands multiple INSERTs (depending on the meta_tile size?), but this does not seem to be a simple task due to the architecture of the seed task which cannot ensure that only one zoom level is sent to the `store_tiles method.

In the end I ended up with a clean solution without noticeable drawbacks.
I added the following method to MBTilesLevelCache:
    def store_tiles(self, tiles):
        all_succeed = True
        mbtiles = {}
        for tile in tiles:
            level = tile.coord[2]
            mbtile = self._get_level(level)
            mbtiles[level] = mbtile
            if not mbtile.store_tile(tile, commit = False):
                all_succeed = False
        for level, mbtile in mbtiles.iteritems():
            mbtile.db.commit()
        return all_succeed

Also, I extended store_tile on both MBTilesCache and MBTilesLevelCache to take a extra argument  commit that defaults to false.
For instance on MBTilesCache,  self.db.commit() is conditioned on the value of the commit argument.
    def store_tile(self, tile, commit = True):
        [...]
                if self.supports_timestamp:
                    stmt = "INSERT OR REPLACE INTO tiles (zoom_level, tile_column, tile_row, tile_data, last_modified) VALUES (?,?,?,?, datetime(?, 'unixepoch', 'localtime'))"
                    cursor.execute(stmt, (level, x, y, content, time.time()))
                else:
                    stmt = "INSERT OR REPLACE INTO tiles (zoom_level, tile_column, tile_row, tile_data) VALUES (?,?,?,?)"
                    cursor.execute(stmt, (level, x, y, content))
                if commit:
                    self.db.commit()
            [...]

Finally, on MBTilesLevelCache, the argument is forwarded to the MBTilesCache.store_tile method:
    def store_tile(self, tile, commit = True):
        if tile.stored:
            return True

        return self._get_level(tile.coord[2]).store_tile(tile, commit)

Additionally, I tried adding a cleanup method to MBTilesLevelCache. For some reason, this was never implemented, the result is that SQLite databases are never closed when using a sqlite cache (unlike the mbtiles one). However, I did not retain this change since it can only slow down the performance of the seed task, without any noticeable benefit.
    # Cleanup mbtiles (close connections to SQLite Databases)
    def cleanup(self):
        for level,mbtile in self._mbtiles.iteritems():
            mbtile.cleanup()

did you make a pull request for this?

No. I was expecting someone to reply before submitting my solution. I was not entirely sure that my solution the good approach, although it worked in my particular use-case.
Are you interested in this solution ?

My biggest problem is re-running seeds with lots of coverage takes forever for mapproxy to scan the database before it even grabs any tiles.  It can take hours for example as I have thousands of coverages.
I think your case is different because you noticed the slowdown when writing.  My issue is the speed of scanning.

I'll be working on bulk store for SQLite/MBtiles this week. So this issue should be solved soon.

Tiles are now stored in bulk for SQLite and MBTiles. For tiled sources you need to enable bulk_meta_tiles (see: https://mapproxy.org/docs/nightly/configuration.html#bulk-meta-tiles)


Llava/CLIP Models Not Loading Properly

Prerequisites
Please answer the following questions for yourself before submitting an issue.

[x ] I am running the latest code. Development is very rapid so there are no tagged versions as of now.
[ x] I carefully followed the README.md.
[x ] I searched using keywords relevant to my issue to make sure that I am creating a new issue that is not already open (or closed).
[ x] I reviewed the Discussions, and have a new bug or useful enhancement to share.

Expected Behavior
Llava should be loading however following the README example I am getting the following error:
clip_model_load: total allocated memory: 195.95 MB Traceback (most recent call last):   File "/Users/furm/projects/watcher/main.py", line 26, in <module>     llm.create_chat_completion(   File "/Users/furm/projects/watcher/venv/lib/python3.9/site-packages/llama_cpp/llama.py", line 2017, in create_chat_completion     return handler(   File "/Users/furm/projects/watcher/venv/lib/python3.9/site-packages/llama_cpp/llama_chat_format.py", line 1049, in __call__     assert ( AssertionError Exception ignored in: <function Llava15ChatHandler.__del__ at 0x105d1cf70> Traceback (most recent call last):   File "/Users/furm/projects/watcher/venv/lib/python3.9/site-packages/llama_cpp/llama_chat_format.py", line 996, in __del__   File "/Users/furm/projects/watcher/venv/lib/python3.9/site-packages/llama_cpp/_utils.py", line 20, in __enter__ LookupError: unknown encoding: ascii ggml_metal_free: deallocating
I'm really not too sure what I'm doing wrong... I'm using the code directly from the README, Both the CLIP model and Llava model are in .gguf format.
Environment and Context
Using a M2 Macbook Air, Python 3.9.6.

@JoshuaFurman, try running it with this model:

model
clip_model

your clip model file seems to be in the wrong encoding and too small in comparison to other clip models

Thanks for the suggestion @D4ve-R. Just downloaded those models and I'm seeing the same errors:
`objc[84786]: Class GGMLMetalClass is implemented in both /Users/furm/projects/watcher/venv/lib/python3.9/site-packages/llama_cpp/libllama.dylib (0x1009a8228) and /Users/furm/projects/watcher/venv/lib/python3.9/site-packages/llama_cpp/libllava.dylib (0x10267c228). One of the two will be used. Which one is undefined.
Exception ignored in: <function Llava15ChatHandler.del at 0x1012adf70>
Traceback (most recent call last):
File "/Users/furm/projects/watcher/venv/lib/python3.9/site-packages/llama_cpp/llama_chat_format.py", line 996, in del
File "/Users/furm/projects/watcher/venv/lib/python3.9/site-packages/llama_cpp/_utils.py", line 20, in enter
LookupError: unknown encoding: ascii
Exception ignored in: <function _LlamaModel.del at 0x102413d30>
Traceback (most recent call last):
File "/Users/furm/projects/watcher/venv/lib/python3.9/site-packages/llama_cpp/llama.py", line 240, in del
File "/Users/furm/projects/watcher/venv/lib/python3.9/site-packages/llama_cpp/_utils.py", line 20, in enter
LookupError: unknown encoding: ascii
Exception ignored in: <function _LlamaContext.del at 0x102417ca0>
Traceback (most recent call last):
File "/Users/furm/projects/watcher/venv/lib/python3.9/site-packages/llama_cpp/llama.py", line 422, in del
File "/Users/furm/projects/watcher/venv/lib/python3.9/site-packages/llama_cpp/_utils.py", line 20, in enter
LookupError: unknown encoding: ascii
Exception ignored in: <function _LlamaBatch.del at 0x10241c040>
Traceback (most recent call last):
File "/Users/furm/projects/watcher/venv/lib/python3.9/site-packages/llama_cpp/llama.py", line 670, in del
File "/Users/furm/projects/watcher/venv/lib/python3.9/site-packages/llama_cpp/_utils.py", line 20, in enter
LookupError: unknown encoding: ascii
clip_model_load: total allocated memory: 195.95 MB
encode_image_with_clip: image encoded in  1928.89 ms by CLIP (    3.35 ms per image patch)`
Possibly my implementation may be wrong?
`from llama_cpp import Llama
from llama_cpp.llama_chat_format import Llava15ChatHandler
import base64
def image_to_base64_data_uri(file_path):
with open(file_path, "rb") as img_file:
base64_data = base64.b64encode(img_file.read()).decode('utf-8')
return f"data:image/png;base64,{base64_data}"
file_path = '/Users/furm/projects/llama.cpp/llava-stuff/selfie.png'
data_uri = image_to_base64_data_uri(file_path)
Test
clip_model_path = "models/mmproj-model-f16.gguf"
model_path = "models/ggml-model-q4_k.gguf"
chat_handler = Llava15ChatHandler(clip_model_path=clip_model_path)
llm = Llama(
model_path = model_path,
chat_format = "llava-1-5",
chat_handler = chat_handler,
n_ctx = 2048, # n_ctx should be increased to accomodate the image embedding
n_gpu_layers = 1,
logits_all = True,
verbose = False
)
llm.create_chat_completion(
messages=[
{"role": "system", "content": "You are an assistant who perfectly describes images."},
{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": data_uri}},
{"type": "text", "text": "Describe this image in detail please."}
]
}
]
)`

Funny enough I just tested a simple inference with openhermes-2.5-mistral7b and the inference completes but I'm still being thrown the LookupError: unknown encoding: ascii...
Code:
from llama_cpp import Llama

llm = Llama(model_path="./models/openhermes/openhermes-2.5-mistral-7b.Q5_K_M.gguf", n_gpu_layers=1, verbose = False)
output = llm(
    "Name the planets in the solar system? ",  # Prompt
    echo = True  # Echo the prompt back in the output
)

print(output)

What happens when you run with n_gpu_layers = 0?

I tested the code and I got no errors on windows, seems like an issue on mac

It works fine on a 2018 intel MacBook Pro

Hey @JoshuaFurman not sure the cause of this issue but 2 things that stand out:

objc[84786]: Class GGMLMetalClass is implemented in both /Users/furm/projects/watcher/venv/lib/python3.9/site-packages/llama_cpp/libllama.dylib (0x1009a8228) and /Users/furm/projects/watcher/venv/lib/python3.9/site-packages/llama_cpp/libllava.dylib (0x10267c228). One of the two will be used. Which one is undefined. this implies some issue with how we're building both llama and llava as shared libraries.
Traceback (most recent call last): File "/Users/furm/projects/watcher/venv/lib/python3.9/site-packages/llama_cpp/llama_chat_format.py", line 996, in __del__ File "/Users/furm/projects/watcher/venv/lib/python3.9/site-packages/llama_cpp/_utils.py", line 20, in __enter__ LookupError: unknown encoding: ascii this is an error with the stdout / stderr capture, can you rerun with verbose=True?

verbose = False

remove this line :
verbose = False
It works again. 😄

I have the similar problem, when I use code below to load llama model:
llm = Llama(model_path="./models/llama-2-7b-chat.Q4_K_M.gguf", verbose=False, n_gpu_layers=30)
Then an exception will be throwed:

Exception ignored in: <function _LlamaContext.del at 0x7f69f2214c10>
Traceback (most recent call last):
File "/home/lwc/anaconda3/envs/gpu_llama/lib/python3.9/site-packages/llama_cpp/llama.py", line 425, in del
File "/home/lwc/anaconda3/envs/gpu_llama/lib/python3.9/site-packages/llama_cpp/_utils.py", line 24, in enter
LookupError: unknown encoding: ascii
Exception ignored in: <function _LlamaModel.del at 0x7f69f2212ca0>
Traceback (most recent call last):
File "/home/lwc/anaconda3/envs/gpu_llama/lib/python3.9/site-packages/llama_cpp/llama.py", line 241, in del
File "/home/lwc/anaconda3/envs/gpu_llama/lib/python3.9/site-packages/llama_cpp/_utils.py", line 24, in enter
LookupError: unknown encoding: ascii
Exception ignored in: <function _LlamaBatch.del at 0x7f69f2216f70>
Traceback (most recent call last):
File "/home/lwc/anaconda3/envs/gpu_llama/lib/python3.9/site-packages/llama_cpp/llama.py", line 675, in del
File "/home/lwc/anaconda3/envs/gpu_llama/lib/python3.9/site-packages/llama_cpp/_utils.py", line 24, in enter
LookupError: unknown encoding: ascii

problem will not occur when verbose=True

i have the same problem on windows 10:
Llama.generate: prefix-match hit

llama_print_timings:        load time =    2447.45 ms
llama_print_timings:      sample time =      22.66 ms /   104 runs   (    0.22 ms per token,  4589.79 tokens per second)
llama_print_timings: prompt eval time =       0.00 ms /     1 tokens (    0.00 ms per token,      inf tokens per second)
llama_print_timings:        eval time =   18997.99 ms /   104 runs   (  182.67 ms per token,     5.47 tokens per second)
llama_print_timings:       total time =   19263.97 ms /   105 tokens
Exception ignored in: <function Llava15ChatHandler.__del__ at 0x0000026845EBCF70>
Traceback (most recent call last):
  File "C:\Users\{}\.pyenv\pyenv-win\versions\3.10.9\lib\site-packages\llama_cpp\llama_chat_format.py", line 2171, in __del__
  File "C:\Users\{}\.pyenv\pyenv-win\versions\3.10.9\lib\site-packages\llama_cpp\_utils.py", line 38, in __enter__
ValueError: I/O operation on closed file

verbose=True or verbose=False doesnt fix it.


Infer metadata by resolving formattedref links where possible

In Relaton data model, any bibliographic item instance can technically omit all useful metadata fields and be just a formattedref, which is a primary document identifier string that can be used to retrieve actual bibliographic data from elsewhere.
In our source data, this is currently the case with at least these:

relaton-data-ids (I-D series containers provide no metadata)
relaton-data-rfcsubseries (each RFC subseries provides full metadata for its relations—for the time being—but not for RFC subseries item itself)

This presents some design issues:

In API output, I believe the service would be expected to always return expanded descriptions instead of formattedref links in relations.
In GUI, the service could format relations as hyperlinks. However, if item itself is a formattedref and lacks other metadata, it could not be displayed to the user in an acceptable way. (See #192.)

Proposing two changes in business logic to address that:

Service could dynamically resolve all formattedref occurrences in item’s relations by locating relevant documents. This would incur DB hits, but it should be possible to compress into a single query (which admittedly could be large for search results pages with items containing many relations; we could use another caching layer for that if needed).

If item itself is a formattedref (e.g., a series container with no metadata of its own, like with relaton-data-ids versionless I-D series containers), service could “make up” relevant metadata (such as title, authors, etc.) by aggregating bibliographic data of documents linked via “includes” relations.
Currently, the service does so with RFC subseries—however, relaton-data-rfcsubseries contains pre-resolved relations (for now—https://github.com/ietf-ribose/bibxml-service/issues/192#issuecomment-1114204504). The same approach doesn’t work as is for relaton-data-ids, since relations also don’t have metadata and must be resolved per previous point.

Cautionary note: relaton-py’s BibXML serializer actually uses absence of useful metadata on “series container” items to determine whether to output <referencegroup>. This could break that behavior. Presumably, the presence of “includes” relations should be enough to tell serializer that it should be a <referencegroup>.

Please see https://github.com/ietf-ribose/bibxml-service/issues/192#issuecomment-1119952433 for why formattedref should NOT be used as a locator. formattedref is ONLY suitable for rendering, not locating a resource.

Thanks @ronaldtse, I see that due to a misunderstanding of Relaton model the problem (and the solution) may be misguided, since formattedref is not actually intended as a locator/reference.
It looks like first thing the data sources should be updated to address the breakage in the GUI.
I might close this issue soon, but somewhat related idea may come up (in that there may be incomplete bibitems in some source, and the service could resolve them by docid from another source).

In Relaton data model, any bibliographic item instance can technically omit all useful metadata fields and be just a formattedref, which is a primary document identifier string that can be used to retrieve actual bibliographic data from elsewhere.

Relaton model requires title or formattedref to be presented.

In our source data, this is currently the case with at least these:

relaton-data-ids (I-D series containers provide no metadata)

The related documents are in the same repository and could be easily found by formattedref. I don't think we need to duplicate them in the relation element.

relaton-data-rfcsubseries (each RFC subseries provides full metadata for its relations—for the time being—but not for RFC subseries item itself)

The rfcsubseries repository doesn't contain the related documents, so I decided to provide relation with full metadata.

This presents some design issues:

In API output, I believe the service would be expected to always return expanded descriptions instead of formattedref links in relations.
In GUI, the service could format relations as hyperlinks. However, if item itself is a formattedref and lacks other metadata, it could not be displayed to the user in an acceptable way. (See Updated relaton-data-ids source breaks assumptions about data; causes weird GUI #192.)

Proposing two changes in business logic to address that:

Service could dynamically resolve all formattedref occurrences in item’s relations by locating relevant documents. This would incur DB hits, but it should be possible to compress into a single query (which admittedly could be large for search results pages with items containing many relations; we could use another caching layer for that if needed).
If item itself is a formattedref (e.g., a series container with no metadata of its own, like with relaton-data-ids versionless I-D series containers), service could “make up” relevant metadata (such as title, authors, etc.) by aggregating bibliographic data of documents linked via “includes” relations.

I looked through some contained series and it looks like they have identical titles and abstracts but the authors are different. I think we can provide metadata in I-D series containers if the metadata is identical for all included documents.

Currently, the service does so with RFC subseries—however, relaton-data-rfcsubseries contains pre-resolved relations (for now—Updated relaton-data-ids source breaks assumptions about data; causes weird GUI #192 (comment)). The same approach doesn’t work as is for relaton-data-ids, since relations also don’t have metadata and must be resolved per previous point.

As I said the relaton-data-ids contains related documents (I hope so). In other side relaton-data-rfcsubseries contain only bundles of documents so we need to provide metadata inside relation items.

@andrew2net

Relaton model requires title or formattedref to be presented.

This is changing. They are no longer considered exclusive. formattedref is just optional, it does not remove the requirement of docid for example.

The related documents could be easily found by formattedref.

From Nick’s and Ronald’s words, formattedref is not a reliable “link”. Even though I relied on it as a link in BibXML service, it’s not a link. It’s a visual human-readable “cached” representation of bibliographic item.

The related documents are in the same repository

This should not matter.
So either full docs should be included, or we need a better linking mechanism. (cc @ronaldtse and @opoudjis)

I looked through some contained series and it looks like they have identical titles and abstracts but the authors are different. <…>

We don’t need to provide all metadata in unversioned I-D containers, just titles and abstracts is enough, or even just titles.

As I said the relaton-data-ids contains related documents (I hope so). In other side relaton-data-rfcsubseries contain only bundles of documents so we need to provide metadata inside relation items.

Whether the same source contains the items or not shouldn’t be important. The bibitem can be passed through many layers and many components, and the information about which relaton-data repository it was contained originally will be lost, it should not be important.