Tests for template tags with pytest-xdist and pytest-cov break view tests using the template tags

See https://github.com/pytest-dev/pytest-cov/issues/285
Here's a repository that reproduces the behaviour (see README):
https://github.com/TauPan/pytest-django-xdist-cov-bug
(Which also reproduces #36)
General description:
1.) You have a template tag library "foo"
2.) You have a view using a template using that library via load foo
3.) Being a thorough tester, you decide you need a test for the template tag library, which means you have to from app.templatetags import foo in your test.
4.) And of course you need to test the view using the templatetag.
5.) And maybe you have to test the templatetag before the view (not sure if this is relevant) e.g. pytest discovery puts it before the view test.
6.) And since you have many tests, you run pytest --cov -n 2
Which results in an error like the following:
django.template.exceptions.TemplateSyntaxError: 'foo' is not a registered tag library.
The error only appears if both -n and --cov are used.
There are two workarounds at this point:

Move the business logic for custom template tags and filters into a separate module and test separately.
Explicitly import the template tag library as proposed in https://github.com/pytest-dev/pytest-cov/issues/285#issuecomment-489419338

However the django documentation at  https://docs.djangoproject.com/en/2.2/howto/custom-template-tags/ (or 1.11 or any version) does not mention that templatetags libraries need to be imported anywhere. I'm not sure if any of the relevant modules mentions that (pytest-cov, pytest-xdist, pytest-django or django_coverage_plugin). Since production code runs without those imports (and --cov and -n2 on their own as well) I suspect there's still a bug somewhere and importing those modules explicitly is just a workaround, with the advantage that it's simpler than my initial workaround of moving the busines code of the template tags and filters out of the tag library module and testing it separately.
So my take would be that discovery of template tag libraries should not depend on the presence of --cov and -n.

I was able to get the same result using your test repository and confirmed #64 fixes the issue. Would you please confirm on your end too?

Hi folks,
I will look at this ASAP, but don't expect to get around too this or #64 until at least this weekend.
Thank you for your patience.
Andrew

What's the status of this issue?
I'm running into this issue using Django 2.2.17 and pytest /w plugins: celery-4.4.6, sugar-0.9.4, xdist-2.1.0, cov-2.10.1, django-4.1.0, Faker-4.17.1, forked-1.3.0, subtests-0.3.2 and using django_coverage_plugin.

I'm sorry this repo has been so quiet.  We don't have an active maintainer at the moment.

This is fixed in 6622791.

It's a bit late but I can confirm that this fixes the problems for me.
The reason I needed some time to validate this was that I saw new errors while running coverage concurrently, which turned out to be problems in my test setup.
(I had concurrent tests using the same directory, and after introducing some setup code to fix that, I can run coverage concurrently without issues.)
Thanks for the fix!


Update PySidePyQtPlugin.py

added missing plugin family sqldrivers

There is a command line options for the plugin to specify the plugins to include. The MySQL drivers are clearly not used by every Qt application, I dare say only a big minority, so they won't be added.
Maybe the plugin should be more talkative about what plugins it includes, and which ones not. But adding all to be included into "sensible" makes no sense, does it?

Also, develop had issues from the latest pre-release that I had to rebase for, sorry about that, that's breaking your tests.

Closing this, as it seems useless and I didn't receive any feedback on my last comments.


How do I find the names of all the panels and charaters?

I wanted to use Hatey in one of my custom levels but I did not know the name for him and the game said Hatey was an invalid input. Could you please give me a list of all the charater and panel names in the game files or put it on the github page. Thank you for making this mod I wanted it for so long.

I assume you figured this out, but they are in enums. Hatey is called DwarfHatey.


freebsd add humanize_number/hexdump fn.

r? @JohnTitor
(rust-highfive has picked a reviewer for you, use r? to override)

@bors r+

:pushpin: Commit 55b913c03c655c1e816a376b75f2d6011ebe5ed5 has been approved by JohnTitor

:hourglass: Testing commit 55b913c03c655c1e816a376b75f2d6011ebe5ed5 with merge 0ae17dc3c0f590b3bbd24ef1abc8b0c164c6fca5...

:sunny: Test successful - checks-actions, checks-cirrus-freebsd-11, checks-cirrus-freebsd-12, checks-cirrus-freebsd-13
Approved by: JohnTitor
Pushing 0ae17dc3c0f590b3bbd24ef1abc8b0c164c6fca5 to master...


Cannot connect to Elasticache

Hi,
We try to connect to Elasticache (Cluster mode):
client := redis.NewClusterClient(&redis.ClusterOptions{
    Addrs:   []string{ ""clustercfg.x.y.usw2.cache.amazonaws.com:6379""},
})
err := client.Set("key", "value", time.Minute)

This works fine on a local redis cluster <IP_ADDRESS>:30001 but we get a read tcp 172.24.x.x:46908->172.24.x.x:6379: i/o timeout error on Elasticache
Note that we are trying to move away from another redis client (mna/redisc) which works ok with Elasticache, so it is not a permission issue.
Is there anything special we need to do in the Dialer maybe for Elasticache (cluster mode)?
Thanks

There was an issue with the TLS config, fixed and seems to be working

There was an issue in our TLS config, things work great now thanks!

Hey @ThomasJannaud what TLS issue did you had and how did you fix it? Having the same problem right now

@bruno-chavez as a dialer, do you use a tls.DialWithDialer?

@ThomasJannaud Can you please provide the code snippet which worked for you ?

Although I can't really speak for the op, this is almost certainly fixed (it did so for me on ElastiCahce) by adding TLSConfig like so:
client := redis.NewClusterClient(&redis.ClusterOptions{
    Addrs:   []string{ "clustercfg.x.y.usw2.cache.amazonaws.com:6379"},
   TLSConfig: &tls.Config{},
})


Check tinyint and int bounds on ingest

Internally we store all int types in as int64, but we don't currently bounds of tinyint and int on ingest.
Tinyint should be -128 <= x <= 127
Int should be -2147483648 <= x <=<PHONE_NUMBER>

We should also add SQLTests to verify bounds are checked on conversion - e.g. when creeating an MV with tinyinto from a source with int


Forked test

We will not build from forks on this main repository. If you have an update for jcef, please contribute it upstream. Thanks! :)


Firefox – stops parsing on equal sign

In Firefox, given the hash in the URL is #code=var%20foo%20%3D%20'bar'%3B:
var queryString = require('query-string');
queryString.parse(location.hash);

Output:
{code: 'var foo '}

Seems to stop parsing when it encounters an equal sign. Chrome works fine.

What version of firefox are you using? I tested it with Chrome and Firefox and both give me the correct result. My Firefox version is 41.0.1.

Firefox <=39
location.hash = "#code=var%20foo%20%3D%20'bar'%3B";
"#code=var%20foo%20%3D%20'bar'%3B"
location.hash
"#code=var foo = 'bar';"

Firefox >=41.0.1
location.hash = "#code=var%20foo%20%3D%20'bar'%3B";
"#code=var%20foo%20%3D%20'bar'%3B"
location.hash
"#code=var%20foo%20%3D%20%27bar%27%3B"

You could mitigate this by changing your split strategy.
http://jsbin.com/gocoralatu/1/edit?js,console

Will have a look at it later this day.


[#166814864] first db migrations and models

This PR creates the migrations and the models for the entities User, PublicAdministration and PaUser, the latter is an associative entity required to join users and public administrations.

Affected stories

#undefined: undefined

New dependencies added: pg-hstore, sequelize, umzug-sync, @types/bluebird and @types/validator.
pg-hstore
Author: Seth Carney
Description: An module for serializing and deserializing JSON data in to hstore format
Homepage: https://github.com/scarney81/pg-hstore

Createdabout 7 years agoLast Updatedabout 1 month agoLicenseNO LICENSE FOUNDMaintainers1Releases15Direct DependenciesunderscoreKeywordspg, postgres and hstore

README

pg-hstore
A node package for serializing and deserializing JSON data to hstore format
Install pg-hstore
$ npm install pg-hstore

Usage
stringify
var hstore = require('pg-hstore')();
var source = { foo: "oof", bar: "rab", baz: "zab" };
hstore.stringify(source, function(result) {
  ...
  // result = '"foo"=>"oof", "bar"=>"rab", "baz"=>"zab"'
  ...
});

parse
var hstore = require('pg-hstore')();
var source = '"foo"=>"oof", "bar"=>"rab", "baz"=>"zab"';
hstore.parse(source, function(result) {
  ...
  // result = { foo: "oof", bar: "rab", baz: "zab" }
  ...
});

sequelize
Author: Sascha Depold
Description: Multi dialect ORM for Node.JS
Homepage: http://docs.sequelizejs.com/

Createdabout 8 years agoLast Updated2 days agoLicenseMITMaintainers7Releases453Direct Dependenciesbluebird, cls-bluebird, debug, dottie, inflection, lodash, moment, moment-timezone, retry-as-promised, semver, sequelize-pool, toposort-class, uuid, validator and wkxKeywordsmysql, mariadb, sqlite, postgresql, postgres, mssql, orm, nodejs and object relational mapper

README
Sequelize

Sequelize is a promise-based Node.js ORM for Postgres, MySQL, MariaDB, SQLite and Microsoft SQL Server. It features solid transaction support, relations, eager and lazy loading, read replication and more.
Sequelize follows SEMVER. Supports Node v6 and above to use ES6 features.
New to Sequelize? Take a look at the Tutorials and Guides. You might also be interested in the API Reference.
v5 Release
You can find the upgrade guide and changelog here.
Table of Contents

Installation
Documentation
Responsible disclosure
Resources

Installation
$ npm install --save sequelize # This will install v5

# And one of the following:
$ npm install --save pg pg-hstore # Postgres
$ npm install --save mysql2
$ npm install --save mariadb
$ npm install --save sqlite3
$ npm install --save tedious # Microsoft SQL Server

Documentation

v5 Documentation
v4 Documentation
v3 Documentation
Contributing

Responsible disclosure
If you have any security issue to report, contact project maintainers privately. You can find contact information in CONTACT.md.
Resources

Changelog
Slack
Stack Overflow

Tools

Sequelize & TypeScript
Enhanced TypeScript with decorators
Sequelize & GraphQL
Add-ons & Plugins
Sequelize CLI

Learning

Getting Started
Express Example

Translations

English v5 (OFFICIAL)
中文文档 v4/v5 (UNOFFICIAL)

umzug-sync
Author: SGrondin
Description: Sequelize (PG) migrations for distributed systems
Homepage: https://github.com/SGrondin/umzug-sync

Createdover 2 years agoLast Updatedover 2 years agoLicenseMITMaintainers1Releases1Direct Dependenciesbluebird and umzug

README
umzug-sync
Sequelize (Postgresql only) migrations for distributed systems. This library uses umzug, the library used by Sequelize to run migrations. Usually those migrations are run from the command line tool, sequelize-cli. This library makes it easy and safe to run migrations from the application code across a cluster of servers. All servers can call usync.migrate() and wait on the promise and be guaranteed upon resolution that the database schema is fully up to date.
Umzug-sync is resilient against race conditions, conflicts, concurrent migrations, timeouts and many other issues that may occur in distributed environments.
var usync = require('umzug-sync')
var Sequelize = require('sequelize')
var sequelize = new Sequelize({ /* sequelize options */ })

var config = {
  sequelize: sequelize,
  SequelizeImport: Sequelize,
  migrationsDir: 'migrations/'
}

usync.migrate(config)
.then(function () {
  // Execute program
})
.catch(function (err) {
  // Handle the error, something bad happened
})

There is only one function: migrate(). It takes a config object and returns a promise.
config
The config object supports the following options:

Name
Type
Mandatory
Default
Description

sequelize
Object
Yes

A configured instance of Sequelize.

SequelizeImport
Object
Yes

The Sequelize library object that created the sequelize instance.

migrationsDir
String
Yes

Path (relative or absolute) where the migration files are located. Those files must end in .js.

chdir
String
No

Sometimes migration files load other files relatively to a certain assumed Current Working Directory (cwd/pwd). Setting this option to a path will change the cwd/pwd of the process for the duration of the migrate() function execution and change it back afterwards.

logging
Function
No

Function that will be called with a single string argument whenever a migration event occurs. Example value: console.log

timeout
Integer
No
15
Maximum time (in seconds) to wait for the mutex. migrate() is guaranteed to resolve/reject within 2 * timeout

WARNING
Race conditions are possible if the timeout expires before the migrations are done executing. This is by design in case a migration gets "jammed" or the server simply disappears mid-migration(s). This way another server will get a chance to run the migrations instead of leaving the whole system in a broken state. So pick the timeout value carefully.

@types/bluebird
Author: Unknown
Description: TypeScript definitions for bluebird
Homepage: http://npmjs.com/package/@types/bluebird

Createdabout 3 years agoLast Updatedabout 2 months agoLicenseMITMaintainers1Releases53Direct Dependencies

README
Installation

npm install --save @types/bluebird

Summary
This package contains type definitions for bluebird ( https://github.com/petkaantonov/bluebird ).
Details
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/bluebird
Additional Details

Last updated: Fri, 24 May 2019 21:00:58 GMT
Dependencies: none
Global values: none

Credits
These definitions were written by Leonard Hecker https://github.com/lhecker.

@types/validator
Author: Unknown
Description: TypeScript definitions for validator.js
Homepage: http://npmjs.com/package/@types/validator

Createdabout 3 years agoLast Updatedabout 1 month agoLicenseMITMaintainers1Releases32Direct Dependencies

README
Installation

npm install --save @types/validator

Summary
This package contains type definitions for validator.js ( https://github.com/chriso/validator.js ).
Details
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/validator
Additional Details

Last updated: Sat, 08 Jun 2019 01:19:09 GMT
Dependencies: none
Global values: validator

Credits
These definitions were written by tgfjt https://github.com/tgfjt, Ilya Mochalov https://github.com/chrootsu, Ayman Nedjmeddine https://github.com/IOAyman, Louy Alakkad https://github.com/louy, Kacper Polak https://github.com/kacepe, Bonggyun Lee https://github.com/deptno, Naoto Yokoyama https://github.com/builtinnya, Philipp Katz https://github.com/qqilihq, Jace Warren https://github.com/keatz55.

  Generated by :no_entry_sign: dangerJS against 0028d49a7889732d2547f314f01a268cb25007e0


Allowing for Range.End to be Nil for gitlab_mr_discussion

[x] Updated Unreleased section in CHANGELOG or it's not notable changes.

Not a notable change.
--
Rdjson format supports Range.End to be Nil. In gitlab we were not generating suggestion if the End was Nil. This PR fixes it.
Note: I am not a pro on Go language, so if there are any updates, please feel free to suggest an improvement.

@haya14busa  Can you take a look at this PR.


Urgent fix to automatically select data entry user

Issue Reference
Automatically selects data entry user when creating a rescue camp.
Need to merge ASAP.

Please rebase and add migrations. FIxed for now by me


Fixed: Failed to construct 'URL': Invalid URL

Still missing audio due to way YouTube keeps high resolution videos
Sounds weird, but after node install there is need of manual change at node_modules/tough-cookie/lib/cookie.js: Line 32  for replacing const punycode = require("punycode/"); to const punycode = require("punycode"); , because distube/ytdl-core uses the tough-cookie v4.1.4, which have a typo in it

Thx u, good, jobs


How to use PinDriver across threads

I'm trying to build a generic helper that is able to take in a pin and can just be responsible for managing that pin from then on.
I'm having trouble with 2 pieces. First I'm having trouble finding the right abstraction to use to pass in any output pin. I've tried both OutputPin as well as AnyOutputPin but neither seem to work. Here's an example where I've just passed in Gpio4 for now.
pub struct PumpManager<'a> {
    pin: PinDriver<Gpio4, Output>,
}

impl PumpManager<'_> {
    pub fn new(pin: PinDriver<Gpio4, Output>) -> PumpManager {
        PumpManager { pin }
    }

    pub fn run_pump_for_period(self, time: u64) -> Result<(), EspError> {
        self.pin.set_high().unwrap();

        let once_timer = EspTimerService::new().unwrap().timer(move || {
            self.pin.set_low().unwrap();
        });

        once_timer.unwrap().after(Duration::from_secs(time))
    }
}

The other issue is that if I define my pin or PinDriver at the top level of my main function, I always get the error *const () cannot be shared between threads safely within [closure@src\main.rs:116:15: 116:35], the trait 'Sync' is not implemented for '*const ()'
I've also tried defining the PumpManager at the top level and just using it there but still get the const () cannot be shared error. What is the best practice for this?

I'm not sure what you are saying exactly: does the above code snippet compile or not? I think it should, because PinDriver is currently Send (but not Sync indeed, which would be more complex to do and I'm unsure if we should do it)?

As for using AnyOutputPin - this should work without any problems. Unless you show a code snippet where it does not work, I can only speculate what the issue at hand is.

My apologies! Let me address AnyOutputPin first.
use crate::pins::PumpPin;
use crate::EspError;

use embedded_svc::timer::OnceTimer;
use embedded_svc::timer::TimerService;
use esp_idf_hal::gpio::AnyIOPin;
use esp_idf_hal::gpio::*;
use esp_idf_hal::gpio::{self, InputOutput};
use esp_idf_hal::peripheral::Peripheral;
use esp_idf_hal::peripherals::Peripherals;

use esp_idf_svc::timer::*;
use std::fmt;
use std::{convert::Infallible, fmt::Display, time::Duration};

#[derive(Debug)]
pub enum PumpStatus {
    Idle,
    Pumping,
    PumpCompleted,
}

pub enum FluidPumps {
    Pump1,
}

pub struct PumpManager {
    pump1: PinDriver<'static, Gpio4, Output>,
}

impl PumpManager {
    pub fn new() -> PumpManager {
        let peripherals = Peripherals::take().unwrap();
        let pin4_pump = PinDriver::output(peripherals.pins.gpio4).unwrap();

        PumpManager { pump1: pin4_pump }
    }

    fn get_output_for_pump(self, pump_identifier: FluidPumps) -> PinDriver<'static, AnyOutputPin, Output> {
        let pump = match pump_identifier {
            FluidPumps::Pump1 => self.pump1,
        };

        return pump; // This throws an error
    }

    pub fn run_pump_for_period(
        self,
        time: u64,
        pump_identifier: FluidPumps,
    ) -> Result<(), EspError> {
        let pin = self.get_output_for_pump(pump_identifier);

        pin.set_high().unwrap();

        let once_timer = EspTimerService::new().unwrap().timer(move || {
            pin.set_low().unwrap();
        });

        once_timer.unwrap().after(Duration::from_secs(time))
    }
}

In get_output_for_pump, I want to return the matching output for a given pump. If I use the return type PinDriver<'static, AnyOutputPin, Output>, I get the error
mismatched types
expected struct `esp_idf_hal::gpio::PinDriver<'static, esp_idf_hal::gpio::AnyOutputPin, _>`
   found struct `esp_idf_hal::gpio::PinDriver<'_, esp_idf_hal::gpio::Gpio4, _>`

hmm your problem is not related to usage related accross threads. its simply an type error. A concrete Pin like Gpio4 is something different than AnyOutputPin.
If you want to make it a bit more dynamic and for example allow the PumpManager to get any pin on creation you can crate something like the following:
struct Manager {
    item: PinDriver<'static, AnyIOPin, Output>
}

impl Manager {
    pub fn new(pin: impl IOPin + 'static) -> Manager {
        let pin = pin.downgrade();
        //let p = pin
        let item = PinDriver::output(pin).unwrap();
        Manager { item }
    }

    fn get_item(self) -> PinDriver<'static, AnyIOPin, Output> {
        self.item
    }

    pub fn do_stuff(self) {
        let mut driver = self.get_item();
        driver.set_low();
    }
}

and in your main you can create it with
let per = Peripherals::take().unwrap();
let manager = Manager::new(per.pins.gpio4);

I combined 2 problems in my original post which was confusing. I've scoped this down to just the types issue for now to simplify the problem
I gave pump1: PinDriver<'static, AnyIOPin, Output>, a try but get the error
mismatched types
expected struct `esp_idf_hal::gpio::PinDriver<'_, AnyIOPin, _>`
   found struct `esp_idf_hal::gpio::PinDriver<'_, esp_idf_hal::gpio::Gpio4, _>`

I also tried using into() with the following code:
let peripherals = Peripherals::take().unwrap(); // Peripherals
let pin4_pump = PinDriver::output(peripherals.pins.gpio4).unwrap(); // PinDriver<Gpio4, Output>

PumpManager { pump1: pin4_pump.into() }

but get the error:
  --> src\pump_manager.rs:42:40
   |
42 |         PumpManager { pump1: pin4_pump.into() }
   |                                        ^^^^ the trait `From<esp_idf_hal::gpio::PinDriver<'_, esp_idf_hal::gpio::Gpio4, esp_idf_hal::gpio::Output>>` is not implemented for `esp_idf_hal::gpio::PinDriver<'_, AnyIOPin, esp_idf_hal::gpio::Output>`
   |
   = note: required for `esp_idf_hal::gpio::PinDriver<'_, esp_idf_hal::gpio::Gpio4, esp_idf_hal::gpio::Output>` to implement `Into<esp_idf_hal::gpio::PinDriver<'_, AnyIOPin, esp_idf_hal::gpio::Output>>`

I also tried using into() with the following code:
let peripherals = Peripherals::take().unwrap(); // Peripherals
let pin4_pump = PinDriver::output(peripherals.pins.gpio4).unwrap(); // PinDriver<Gpio4, Output>

PumpManager { pump1: pin4_pump.into() }

but get the error:
  --> src\pump_manager.rs:42:40
   |
42 |         PumpManager { pump1: pin4_pump.into() }
   |                                        ^^^^ the trait `From<esp_idf_hal::gpio::PinDriver<'_, esp_idf_hal::gpio::Gpio4, esp_idf_hal::gpio::Output>>` is not implemented for `esp_idf_hal::gpio::PinDriver<'_, AnyIOPin, esp_idf_hal::gpio::Output>`
   |
   = note: required for `esp_idf_hal::gpio::PinDriver<'_, esp_idf_hal::gpio::Gpio4, esp_idf_hal::gpio::Output>` to implement `Into<esp_idf_hal::gpio::PinDriver<'_, AnyIOPin, esp_idf_hal::gpio::Output>>`

You need to .into() the Gpio4 peripheral before instantiating the PinDriver onto it. As in:
let pin4_pump = PinDriver::output(peripherals.pins.gpio4.into()).unwrap(); // PinDriver<Gpio4, Output>

And your PumpManager struct layout should be:
pub struct PumpManager {
    pump1: PinDriver<'static, AnyOutputPin, Output>,
}

As for using PinManager across multiple threads (Sync) easiest way to achieve it is to wrap it in a Mutex. Reading on  Sync and Send might help you understand what is going on. PinManager (for now) is not Sync. We might change it in future, as most of the ESP IDF GPIO code underneath seems sync-safe, but not for now.

I was able to make AnyOutputPin work but the compiler forced me to be explicit about the type for Into
let pin4_pump = PinDriver::output(<esp_idf_hal::gpio::Gpio4 as Into<AnyOutputPin>>::into(
    peripherals.pins.gpio4,
)).unwrap();


Replace the calling convention with something more extensible and easier to format

Proposed:
[module.name, function.name, args]

Done with:
[module_name.function_name, args]


Can we increase the function of rnn structures such as lstm

unsupport lstm. Are there any plans to increase in the future？

Hi, @T-Y404
I just checked Onnx Operators list and found that onnx and PyTorch has LSTM module.
I think it will be added support soon.
Mason

thanks

Hi Authors，
Any update for this issue?
Thanks


typo in install directions

https://github.com/ad-freiburg/qlever-ui/blob/master/docs/install_qleverui.md#installing-qlever-ui-without-docker has
python manage.py makemigrations —-merge && python manage.py migrate
The dash should be a hyphen.

Thanks for reporting this.


CI server

What's your opinion on CI systems? CircleCI is getting outdated. If GitHub Actions, I can help set up a simple CI task that runs cargo test.

Github actions is already deployed as of yesterday!


pr8328 is exploding for me after about 10m of uptime

rageshake.ts:73 DELETE 1 6 ;
15:07:35.856 rageshake.ts:73 INSERT 1 3 !dLxrSBOoWMIiteVAfB:federator.dev ;
15:07:35.857 SlidingRoomListStore.ts:209 Uncaught (in promise) TypeError: Cannot read properties of null (reading 'roomId')
at SlidingRoomListStore.ts:209:25
at Array.findIndex ()
at SlidingRoomListStoreClass.refreshOrderedLists (SlidingRoomListStore.ts:208:58)
at SlidingRoomListStoreClass.onSlidingSyncListUpdate (SlidingRoomListStore.ts:265:14)
at SlidingSync.emit (events.js:153:1)
at SlidingSync.emit (typed-event-emitter.ts:61:22)
at sliding-sync.ts:882:22
at Set.forEach ()
at SlidingSync.start (sliding-sync.ts:881:36)
at async SlidingSyncSdk.sync (sliding-sync-sdk.ts:721:9)

Closing as fixed as the refactor for the list delta algorithm seems to have fixed it.


incorrect fetchers filter causes the self.files arg  can't contain folder

What system are you running Yazi on?
Linux X11
What terminal are you running Yazi in?
foot version: 1.17.2 +pgo +ime +graphemes -assertions
yazi --debug output

Yazi
    Version: 0.2.5 (bf206fc 2024-07-26)
    Debug  : false
    OS     : linux-x86_64 (unix)

Ya
    Version: 0.2.5

Emulator
    Emulator.via_env: ("foot", "")
    Emulator.via_csi: Err(deadline has elapsed)
    Emulator.detect : Foot

Adapter
    Adapter.matches: Sixel

Desktop
    XDG_SESSION_TYPE: Some("wayland")
    WAYLAND_DISPLAY : Some("wayland-1")
    DISPLAY         : Some(":0")

SSH
    shared.in_ssh_connection: false

WSL
    /proc/sys/fs/binfmt_misc/WSLInterop: false

Variables
    SHELL              : Some("/bin/fish")
    EDITOR             : Some("nvim ")
    ZELLIJ_SESSION_NAME: None
    YAZI_FILE_ONE      : None
    YAZI_CONFIG_HOME   : None

Text Opener
    default: Some(Opener { run: "$EDITOR \"$1\"", block: true, orphan: false, desc: "neovim", for_: None, spread: false })
    block  : Some(Opener { run: "$EDITOR \"$1\"", block: true, orphan: false, desc: "neovim", for_: None, spread: false })

tmux
    TMUX   : false
    Version: 3.4

Dependencies
    file             : 5.45
    ueberzugpp       : No such file or directory (os error 2)
    ffmpegthumbnailer: 2.2.2
    magick           : 7.1.1-35
    fzf              : 0.54.0
    fd               : 10.1.0
    rg               : 14.1.0
    chafa            : 1.14.1
    zoxide           : 0.9.4
    unar             : 1.10.7
    jq               : 1.7.1

--------------------------------------------------

Did you try the latest nightly build to see if the problem got fixed?
Yes, and I updated the debug information above (yazi --debug) to the nightly that I tried
Describe the bug
refer to https://github.com/sxyazi/yazi/issues/1355#issuecomment-2252622583
Expected Behavior
self.files arg should be able to contain folder.
To Reproduce
1.impl a fetcher
function M:fetch()
	for index, value in ipairs(self.files) do
		ya.err(tostring(value.url))
	end
	return 3
en

use the fetcher
{ id = "test", name = "*", run = "test",if = "mime", prio = "normal" }

Configuration
No response
Anything else?
No response

There is an error in this filter match_path

the self.is_dir is always false.
because the s var  is not a path string but a mime-type string

so b.len() is always euqal a.len()

file and dir rules are different, just try the demo in https://github.com/sxyazi/yazi/issues/1355#issuecomment-2252696511, it should just work

He seems to be work now.

OK closing the issue then

It seems that this condition is superfluous
if = "!mime"   or if ='"mime"
Because it can already be distinguished in this way:
name = "/" and name = ""

But the above code is also very strange why compare two mime-type strings length

It seems that this condition is superfluous

That's right because the fetcher isn't fully complete yet (it's not in the current target), this is just a workaround.

why compare two mime-type strings length

The name rule is a glob that compares file paths rather than mime-types, unless you use mime rules. The length comparison checks if the glob contains \s (case-sensitive) or / (indicating it must be a directory).


Answer to word embedding question

Answer to What are word embeddings? Why are they useful? Do you know Word2Vec? ⭐

Thank you for your contribution!


JobScheduler keeps restarting

I've tried to use the interval and schedule options instead of inotify. The tokio JobScheduler is able to create the job successfully but the container exits immediately after that.
It looks like the sched.start().await command doesn't work. Is this still working for others?
I've fixed it by adding this loop, but note that the container crashed a few times on the tick and I'm not sure why. Besides that it was working as expected.
loop {
    match sched.tick().await {
        Ok(v) => v,
        Err(e) => {
            error!("Tick problem {:#?}", e);
            panic!("Tick problem, {:#?}", e);
        }
    };
    std::thread::sleep(Duration::from_secs(10));
}

I'm now switching back to inotify so for me this is not a problem anymore, but perhaps others are helped by this finding.
I'm running Openshift 4.10 on premises, using the latest image (quay.io/icdh/core-dump-handler:v8.8.0).

Thanks for reporting this @MrMarshall There have been a lot of changes in the tokio scheduler since this project started and while we have tests to confirm the creation of the schedule works we obviously we need more coverage.
Ill take a look over the next few days and try to understand this a more.

I think this is breaking it https://github.com/IBM/core-dump-handler/blob/main/core-dump-agent/src/main.rs#L194 as tokio scheduler now has a separate new_async handler I am going to migrate to it. https://github.com/mvniekerk/tokio-cron-scheduler/blob/main/examples/lib.rs#L43
I'm also going to add a scheduler integration test so this will be caught pre-release.

Nicely found :) Thanks @No9

OK @MrMarshall  I've created a fix on this branch https://github.com/IBM/core-dump-handler/tree/scheduler-fix
Would you have time to pull the branch and verify?
The image is prebuilt and tagged scheduler-fix so it's just a matter of cloning the scheduler-fix branch and changing the schedule to what you want it to be. https://github.com/IBM/core-dump-handler/blob/scheduler-fix/charts/core-dump-handler/values.yaml#L44

@MrMarshall It also looks like the scheduler no longer blocks so the main execution path is falling through to an exit.
I've put a blocking loop in and updated.

@No9 awesome, works as expected now! Oh and thanks for building this app, it's saved us a lot of time and headaches!

Excellent - Thanks for looking at it before the break I'll package and do a release over the weekend.
Really appreciate the kind feedback too. Makes it all worthwhile.

Closing as this fix is in release https://github.com/IBM/core-dump-handler/releases/tag/v8.9.0
Thanks again for all the validation @MrMarshall and please open an issue if something else crops up.


ARROW-8818: [Rust] Failing to build on master due to Flatbuffers/Union issues

I don't quite know what happened to by local setup.  I was getting an error due to flatbuffers and once I bumped flatbuffers to 0.6.1 is resolved.  I can't re-create it now so I reverted the flatbuffer change.


Pro Tips / Most Popular Slack Conversations Auto-Promoted to the HG Site

_

Via HackGreenville Slack
Karla R
Maybe there should be a "Hacks" blog section where you can post tips on how to do stuff more efficiently
we were just talking about it. we were thinking instead of having some person mediate the content, have people submit their 'tips' as complete post and submit, then have a voting system, where if it's not helpful to an x amount of people, then it would get deleted automatically
@zach2825
maybe not deleted but deactivated. in the end same thing lol

_

Sorry to cut the conversation off in the Slack, but here's a place if you want to flesh out an idea.
I could see something like promoting or copy/pasting the most useful / popular Slack comments or threads to the website, but that's still real work if it can't be automoted.
I know the ideas is not a blog, I'm generally skeptical of any feature that smells like a blog if it's not being done by someone as part of their job / income.  For example, I've seen a lot of well-intentioned blogs or social media accounts go ghost-town.
For example, Synergy Mill makerspace has tried Slack, Facebook, and now a forum to get people to share.  It's all pretty hard to get consistent engagement.  That's the amazing thing about the HG Slack channels.  They have been consistent for at least a few years now.  It's a first for Greenville that I've seen.
So, adding another platform or tool would come with challenges.  That's why I figure we'd almost want / need to automate it where when a post gets a certain # of up votes (whatever that means in Slack) it is added to the website.  However, you can also see a lot of ways that could be abused or promote some silly content.
In any case, glad to hear more about the ideas from Karla and Zach.

Closing and tagged with "Suggestion" and this will appear on the Suggestions project views at
https://github.com/orgs/hackgvl/projects/7/views/1


Data files archiving of large dataset giving a HTTP 403 when trying to patch file document with fileArchiveResult

This is happening for:

the large archiving dataset

but not for:

the medium size dataset

...
 2022-05-11 13:19:52,744  - data.archiver.ingest_api - INFO in ingest_api.py:95 patch_files(): Could not patch http://<IP_ADDRESS>/files/627b7e68e1b8ee44f254c561: 403
 2022-05-11 13:19:52,777  - data.archiver.ingest_api - INFO in ingest_api.py:95 patch_files(): Could not patch http://<IP_ADDRESS>/files/627b7e68e1b8ee44f254c562: 403
 2022-05-11 13:19:52,836  - data.archiver.ingest_api - INFO in ingest_api.py:95 patch_files(): Could not patch http://<IP_ADDRESS>/files/627b7e68e1b8ee44f254c563: 403
 2022-05-11 13:19:52,874  - data.archiver.ingest_api - INFO in ingest_api.py:95 patch_files(): Could not patch http://<IP_ADDRESS>/files/627b7e68e1b8ee44f254c564: 403

Need to investigate and resolve this to allow archiving of the large dataset (for testing).

Issue seems to have fixed itself - Probably related to parallel deployments

No problem at the moment, we can check later


Update Verible Proprocessor README Documentation for +incdir+ flag

This PR solves issue #2215.

How did this fail the checks? Nothing in the code base is changed?

Thanks!
Don't mind the CI failure, sometimes the CI machines have independent issues.


Change floats to decimals on api inputs

The Issue
Similar to what we did for Publish in https://github.com/lbryio/lbry/pull/1238 / https://github.com/lbryio/lbry/pull/1257/files, we should also change for anywhere we are using floats (i.e. wallet_send). lbry.tech is running into problems trying to pass a number otherwise.
The current error is:
2018-08-09 22:00:11,753 WARNING  lbrynet.daemon.auth.server:306: error processing api request: invalid literal for int() with base 10: '0.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.001'
traceback:   File "site-packages/twisted/internet/defer.py", line 1299, in _inlineCallbacks

  File "site-packages/lbrynet/core/Wallet.py", line 1122, in _tip_claim

  File "site-packages/lbrynet/core/Wallet.py", line 1002, in _run_cmd_as_defer_succeed

  File "site-packages/lbryum/commands.py", line 2249, in sendwithsupport

  File "site-packages/lbryum/commands.py", line 2208, in support

exceptions.ValueError: invalid literal for int() with base 10: '0.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.0010.001'

System Configuration

LBRY Daemon version:
LBRY App version:
LBRY Installation ID:
Operating system:

Anything Else

Screenshots

fixed in 0.21.1


Laravel 9.0 Support

Please can you add Laravel 9.0 support? Thanks.

I did PR for Laravel 9 support 17 days ago:
https://github.com/uxweb/sweet-alert/pull/136

please upgrade to L9

Please upgrade to Laravel9

Please upgrade to Laravel9


Error parsing Typescript

I want to report a bug.
Currently running :Prettier on a *.ts file containing enums results in Prettier: failed to parse buffer. with the error message src/file.ts | 1 col 1 |  Unexpected reserved word. Expected behavior is Prettier expecting this reserved word. Running prettier /path/to/file.ts on the command line does not raise a false alarm and works perfectly fine.
I'm using version 0.2.7 of vim-prettier.
I'm using version 1.14.3 of prettier. This is also the version I'm using on the command line.
My prettier executable path is prettier.
$ which prettier
/home/USER/.local/share/umake/nodejs/nodejs-lang/bin/prettier

Hi @hahanein,

Could you confirm that when having vim open editing your .ts file and you execute this command: :PrettierCliVersion you are getting 1.14.3 ?

Could you confirm that when having vim open editing your .ts file and you execute this command: :PrettierCliPath you are getting /home/USER/.local/share/umake/nodejs/nodejs-lang/bin/prettier ?

If all the above is correct, do you think you could provide a little snippet in order for me to be able to reproduce this issue and further look into it ?

I can confirm executing :PrettierCliVersion returned 1.14.3 but :PrettierCliPath returned prettier not /home/USER/.local/share/umake/nodejs/nodejs-lang/bin/prettier.
However, everything is now working as expected. I don't know what happened. I tried reinstalling vim-prettier as well as prettier itself several times and even dug into configuration and setup a bit before I gave up and simply removed the vim extension.
Today I restarted this machine, reinstalled vim-prettier and I can't reproduce the error any more.


SP5: ArrowCoordinated constructor bug

Bug Report
Issue: Typo in ArrowCoordinated constructor.
Reproducing: Call constructor.
        public ArrowCoordinated(Coordinate arrowBase, Coordinate arrowTip)
        {
            Base.X = arrowBase.X;
            Base.Y = arrowTip.Y;
            Tip.X = arrowTip.X;
            Tip.Y = arrowTip.Y;
        }

Base.Y = arrowTip.Y; should read Base.Y = arrowBase.Y;
System Details

ScottPlot Version: 4.1.68
Operating System: Windows 10
Application Type: WinForms
.NET Version: .NET 7.0

Hi @StuartWilloughby, thanks for reporting this!
Specifically the issue is here:
https://github.com/ScottPlot/ScottPlot/blob/16eec73098cb932332a42b19d18a3ab1cccd14a2/src/ScottPlot4/ScottPlot/Plottable/ArrowCoordinated.cs#L81-L87
It would be fantastic if you or someone else could open a pull request to fix this issue! If several days pass and there's no progress, I'll fix it myself before the next release 👍

@swharden, I would be happy to open a pull request for this issue! This is my first time contributing to this project so I wanted to ask before I do it, but it looks like quite a safe change given that nothing seems to be referencing that particular overload of ArrowCoordinated. :)

I would be happy to open a pull request for this issue!

Awesome! I can review and merge-in the change quickly

This is my first time contributing to this project

Let me know if you have any questions along the way! 🚀

quite a safe change

Famous last words 😜

@swharden, I would be happy to open a pull request for this issue! This is my first time contributing to this project so I wanted to ask before I do it, but it looks like quite a safe change given that nothing seems to be referencing that particular overload of ArrowCoordinated. :)

Finally finished a crazy busy week and was just going to do this. More than happy to leave it to you though. :)

@StuartWilloughby It occurs to me now that I should have checked if you are ok with someone else doing the fix since you were the one who found the issue, my apologies - I am still getting familiar with open source collaboration. I will be sure to check next time! Thank you for gracefully letting me take this one.

I should have checked if you are ok with someone else doing the fix

No worries! The more help I get, the better 😄 🚀
#3001 looks great! I'm merging now

@StuartWilloughby It occurs to me now that I should have checked if you are ok with someone else doing the fix since you were the one who found the issue, my apologies - I am still getting familiar with open source collaboration. I will be sure to check next time! Thank you for gracefully letting me take this one.

No need to check as there's no concept of issue ownership in open source. That's not how works. All help on any project is always very welcome. Grateful to you for taking it on and allowing me to turn off my machine 5mins earlier at the end of a very long week.
Hope you continue to enjoy contributing to OSS. Wish I had the time to do more myself.


Category Average different in different views

From @payten on November 13, 2015 3:10
In Gradebook1, the Assignment category average is 12.5%:

In GradebookNG, the instructor sees 300%:

and the student sees 100%:

Strange voodoo going on there...
Copied from original issue: steveswinsburg/gradebookNG#279

This is odd, wondering if you can check if they are all the same call to the backend and what params are being sent?

From @payten on November 20, 2015 3:37
For the grade summary popup, I see the service hit here:
Double categoryScore = this.gradebookService.calculateCategoryScore(category, gradeMap);

With category being this:
org.sakaiproject.service.gradebook.shared.CategoryDefinition@71999334[
  id=8
  name=Assignments
  weight=0.2
  drop_lowest=0
  dropHighest=0
  keepHighest=0
  extraCredit=false
  assignmentList=[org.sakaiproject.service.gradebook.shared.Assignment@53cb3bcf[
  name=Assignment 1
  id=25
  points=100.0
  dueDate=<null>
  counted=false
  externallyMaintained=false
  externalId=<null>
  externalAppName=<null>
  released=false
  categoryName=Assignments
  weight=0.2
  ungraded=false
  extraCredit=false
  categoryExtraCredit=false
  sortOrder=0
  categoryId=8
], org.sakaiproject.service.gradebook.shared.Assignment@2cb68bdf[
  name=Assignment 2
  id=26
  points=50.0
  dueDate=<null>
  counted=false
  externallyMaintained=false
  externalId=<null>
  externalAppName=<null>
  released=true
  categoryName=Assignments
  weight=0.2
  ungraded=false
  extraCredit=false
  categoryExtraCredit=false
  sortOrder=1
  categoryId=8
], org.sakaiproject.service.gradebook.shared.Assignment@683bd2d0[
  name=Assignment 3
  id=27
  points=40.0
  dueDate=<null>
  counted=true
  externallyMaintained=false
  externalId=<null>
  externalAppName=<null>
  released=true
  categoryName=Assignments
  weight=0.2
  ungraded=false
  extraCredit=false
  categoryExtraCredit=false
  sortOrder=2
  categoryId=8
]]
]

And gradeMap:
{25=80.0, 26=35.0, 27=5.0}

Note that the first two assignments have counted = 'false'.  Might that be something to do with it?

From @payten on November 20, 2015 3:42
The student view hits a different endpoint:
public Double getCategoryScoreForStudent(Long categoryId, String studentUuid, Map<Assignment,GbGradeInfo> grades) {
    ...
    Double score = this.gradebookService.calculateCategoryScore(categoryId, assignments, gradeMap);

With params:
categoryId = 8

Hm.. so the number of assignments are different. Only two this time... only those with released=true?
assignments = [org.sakaiproject.service.gradebook.shared.Assignment@42dba333[
  name=Assignment 2
  id=26
  points=50.0
  dueDate=<null>
  counted=false
  externallyMaintained=false
  externalId=<null>
  externalAppName=<null>
  released=true
  categoryName=Assignments
  weight=0.2
  ungraded=false
  extraCredit=false
  categoryExtraCredit=false
  sortOrder=1
  categoryId=8
], org.sakaiproject.service.gradebook.shared.Assignment@748aabf7[
  name=Assignment 3
  id=27
  points=40.0
  dueDate=<null>
  counted=true
  externallyMaintained=false
  externalId=<null>
  externalAppName=<null>
  released=true
  categoryName=Assignments
  weight=0.2
  ungraded=false
  extraCredit=false
  categoryExtraCredit=false
  sortOrder=2
  categoryId=8
]]

Grades match up for those two:
gradeMap = {26=35.0, 27=5.0}

Hi @payten, flicking this back to you. I've fixed up the category calculations and wondering if you are still having issues with the values being different? Ignore the bug from #1420 where the calculation might be wrong, just wondering if it's inconsistent?

Looks great!  The category averages match up on GradebookNG's student view and instructor views (in grid and summaries) and also with the old Gradebook values.
The only issue I'm seeing seems to be related to #1590 whereby the GradebookNG instructor view values are out when one of the grade items is not included in the course grade calculation.
For example:
If item A is 6 out of 10 and isn't included in the course grade calc, and item B is 8 out 10 and is included, I'm seeing a category average of 140% in the NG instructor views; 80% in the NG student view; and 80% in the old gradebook all grades grid.
If you agree, I'll close this one and leave #1590 for the remaining issue.

Ah yep, they definitely seem to be the same issue!  Closing. Thanks!


Migrate blog from wordpress to github pages

Migrates all existing posts from the old blog, mostly intact, so the old blog can be shut down.

Might as well get this merged sooner rather than later to shut down our AWS instance, however I do wish for us to use more aspects of Lektor to automate certain aspects of the blog. (things like content/blog/contents.lr should be dynamically created imo).
About to functionally test, but looks good code wise!

Yeah, this was a kinda quick hack so we can shut down the instance. We can improve the system for it later

🦍 𝒽𝒶𝓇𝒶𝓂𝒷𝑒 𝒶𝓅𝓅𝓇𝑜𝓋𝑒𝒹


Feat/add r5 outcomes post

@garloff this is a first draft for the R5 outcomes post. I will add more content to it, but feel free to poke at it.


some semantic locations are missing placeId

Even in the latest export getting quite a few errors originating from
https://github.com/seanbreckenridge/google_takeout_parser/blob/6561a6a4c89fc75766e83f624fb1a50fc4700b91/google_takeout_parser/parse_json.py#L193-L196
The reason is sometimes they are missing placeId which is required: https://github.com/seanbreckenridge/google_takeout_parser/blob/6561a6a4c89fc75766e83f624fb1a50fc4700b91/google_takeout_parser/models.py#L147
Most of them look like this, with either TYPE_HOME or TYPE_WORK:
{'latitudeE7': ..., 'longitudeE7': ..., 'semanticType': 'TYPE_HOME', 'locationConfidence': 26.890783}

(sometimes it's TYPE_HOME/TYPE_WORK and placeId is present as well, but not always)
There are a few remaining ones with different type:
{'latitudeE7': ...,
'locationConfidence': 14.805286,
'longitudeE7': ...,
'semanticType': 'TYPE_ALIASED_LOCATION'}

, however not sure what that one means.
Not sure what's the right way to handle this, perhaps making placeId optional and perhaps also adding semanticType field?

Yeah... they keep changing what kinda info gets returned in location history/semantic location history
Almost want to create multiple location types and return a Union of all the different kind of semantic location models, instead of having a bunch of None's on the model and the data being very sparse. Makes it more annoying for downstream consumers to figure out what type of location data they need to process
Will do an export tonight and see if I have the same errors
Sure, You can make placeid optional and add the semantic info

I think best to leave the semanticType a string, forcing an enum is prone to breaking


F) a shadow blade that combines both radiance and shadow blade that while invisible you gain the radiance affect and are unable to leave invis, this would be a toggle effect for all you trolls out there
G) one that will let you be immune to truesight for a very short time, after that duration then you will be normally invs
H) one that casts a random spell that once activated throws the spell at the nearest enemy hero

Credit to @Melongod @OxTheFifth @voidskeeper and @Katrix for these ones


Fix #835

There's a bug where args passed to listener blocks are GC'd before the Dart function is invoked. This PR fixes that bug by giving each listener block a small ObjC trampoline that increments the ref count of any ref countable args before invoking the real block.
Here's an example trampoline from the tests (with added comments). This function is invoked at listener construction time. We pass in the block created in Dart, and that block is wrapped in native trampoline block that does the ref counting.
typedef void  (^ListenerBlock)(int32_t  (^)(int32_t ));
ListenerBlock wrapListenerBlock_ObjCBlock_ffiVoid_IntBlock(ListenerBlock block) {
  ListenerBlock wrapper = [^void(int32_t  (^arg0)(int32_t )) {
    block([arg0 copy]);
  } copy];
  // ^ the block literal is allocated on the stack, so we have to
  // call copy to copy it to the heap.

  // The wrapper block now owns a reference to the original
  // block, so release the reference to the original block held
  // by this function scope.
  [block release];

  return wrapper;
}

Details:

Added infrastructure to the configs and the writer to generate a .m file if there are any bindings that need to generate ObjC code.
Added Type.getNativeType, which returns the C/ObjC type, as seen in C/ObjC source code.

The naming conflicts a bit with Type.getCType, which is the Dart representation of the C type.
It's necessary to pass the varName to this function, because there are some C types where the variable name (if any) is embedded in the type: int foo[123], int (*foo)().

Added Type.generateRetain, which returns a snippet of ObjC code that increments the ref count of the given object. Returns null if the type isn't refcounted.

I'm ignoring compound types like structs, unions, and arrays here. It's possible that the correct thing to do is to recursively invoke retain on all of a struct's fields etc. But that will require some more research about what the ObjC runtime does in these cases. The best way to do that research is with a real use case, so I'll defer that until we have one.

The interesting part of the PR is in objc_block.dart.

In addDependencies we decide if a native trampoline is needed. We need a trampoline if there's a listener constructor, and any of the arguments are ref counted. If so, we create _wrapListenerBlock, which is the binding for the native wrapper function we're about to code gen.
toObjCBindingString generates the native wrapper function, if necessary. See above for an example.
In toBindingString, we still construct the listener block in the same way as before, but if we have a _wrapListenerBlock we pass the constructed block through this function to get a wrapped block. The other thing that changed here is we swapped out convFn for listenerConvFn, which doesn't retain the received args (since the trampoline already retained them).

Had to update native_objc_test/setup.dart to compile the generated .m file if it exists.
Note that if the listener is never invoked (eg because the isolate has shut down), the args will leak. This should be a rare occurance.
I also noticed some old block ref counting tests that should have been fixed by #1100, but needed some clean up.

coverage: 92.183% (+1.0%) from 91.215%
when pulling f90097d77e8b7e2cbaacd3cd81bf2d5f4b04f04f on gh835
into ecb8b7eca32143348ce645d57eab3890e10b046f on main.

coverage: 92.183% (+1.0%) from 91.215%
when pulling 37289dbfacafc72a531a50990acd2d8eede9e554 on gh835
into ecb8b7eca32143348ce645d57eab3890e10b046f on main.

coverage: 92.223% (+1.0%) from 91.215%
when pulling e1877f5257f6e3f17c8f8c7be3055753ed15e337 on gh835
into ecb8b7eca32143348ce645d57eab3890e10b046f on main.

coverage: 92.223% (+1.0%) from 91.215%
when pulling 42c863766f7e879f558ce8ac803982abbdbe8dc6 on gh835
into ecb8b7eca32143348ce645d57eab3890e10b046f on main.

coverage: 92.179% (+1.0%) from 91.215%
when pulling 42c863766f7e879f558ce8ac803982abbdbe8dc6 on gh835
into ecb8b7eca32143348ce645d57eab3890e10b046f on main.

Let's explore more general options to this problem first. I think this might be an issue for more than just ObjectiveC refcounts.

coverage: 92.282% (+0.2%) from 92.123%
when pulling 13a44695d5ce7f11d32b8de7ebb60f84ecf98977 on gh835
into a44ef95ee3fcd2e39281b1abe3e405072e602790 on main.

coverage: 92.669% (+0.5%) from 92.123%
when pulling 13a44695d5ce7f11d32b8de7ebb60f84ecf98977 on gh835
into a44ef95ee3fcd2e39281b1abe3e405072e602790 on main.


feat: added versioned contract support

it should be the case that if you add the types here:
https://github.com/mxnnn/micro-stacks/blob/feat/versioned-contracts/packages/core/src/connect/tx/types.ts#L43
it will just work ™  as all the params are automatically passed. I'd suggest making it clarity2 by default, what do you think?


Client constructor

Client constructor parameters page.

Just a random question...
Netlify says here in GitHub Deploy preview ready but this page is blank https://deploy-preview-480--prisma2.netlify.app/docs/reference/tools-and-interfaces/prisma-client
So it's not possible to preview the PR I guess?

@Jolg42 We have a bit of an issue with the /docs subdirectory - if you remove it, you can see the page: https://deploy-preview-480--prisma2.netlify.app/reference/tools-and-interfaces/prisma-client/

Ok sor here it's https://deploy-preview-480--prisma2.netlify.app/reference/tools-and-interfaces/prisma-client/constructor/ and it works thanks <3

Spotted small things @mhwelander
Replace

prisma.schema by schema.prisma
Define a datasources by Define a datasource
Weird indentation here

Fixed - thank you! I'll wait for an update on whether the format of datasources will change.

I broke something and fixed it but in the end the indentation looks better 😄

@janpio I think you can unblock that PR now 😃

Yeah 🎊 😄


[RUN-3006][RUN-3003] Chromium getObjectPreview missing overflow

paired w/ tests: https://github.com/replayio/backend/pull/9313
RUN-3006
Mini fix: RUN-3003
FE E2E Tests: ✅

The relevant tests are not yet passing and RUN-3127 is blocking us here (see below).
But manual inspection reveals that all props are coming back correctly now, as, for example, seen here (which is a golden recording coming from the most recent test run).

WARNING: Blocked by FE E2E tests not working anymore (RUN-3127). Once they do, the corresponding tests should be enabled.

@toshok:

I hope I addressed all your concerns.
I also fixed up and ran more tests (manually) from here.
Since our FE E2E test runs are broken, I manually checked one of the golden recordings as explained + linked in the description.


Mocks tests are not statically negative

  Please fix these tests to make them statically negative.
  Otherwise, I'd like to know if it is fine to mark them as "fail, OK" in status files.
unittest/test/mock_regexp_negative_test: fail
unittest/test/mock_stepwise_negative_test: fail

No more mock*_negative_test files.


Is it possible to wrap the line typed in the input area on greping via FzfLua live_grep series.

Hi, I would like to make a feature request that if it's possible to wrap the input area, since I have too many things to grep (but yup I don't want to adjust the width of this floating window):

(Btw, the good news: I usually need to grep through more than 3,000 files, and with fzf-lua this job can be done gracefully. Cheers! 🥂)

That’s not something I can control, if there’s no such option in man fzf you’d have to ask for this feature upstream.

Just for sure, I meant wrapping the line I typed which follows the "Word $". OK, I will find a time to ask there.

Just for sure, I meant wrapping the line I typed which follows the "Word $". OK, I will find a time to ask there.

Yes, the input line is part of the fzf interface, there's really not much I can do here.


feat: add flow type annotations

Also configure build/test/lint scripts for Flow typed JS

Run flow check after linting
Use AEgir config to use babel-loader for webpack builds
Use different babel config for browser builds to avoid inlining source maps

This PR supersedes #47. I didn't want to hijack @gozala's PR. This PR is just a cleaned up version of his work. All credits go to him.
@gozala please review if it is still doing what it's supposed to do. I've changed the npm scripts a bit to run the build before the test runs. I also removed the hack around Mocha, it's now part of AEgir in the flow branch.

I've moved the webpack specific things from .aegir.js and the .babelrc into AEgir.
Though there is an issue now. babel --watch doesn't work anymore as there is no .babelrc file. I have no clue how to fix this. I didn't find a way to make the Babel CLI pick up a .babelrc that is bundled with AEgir. @Gozala Do you have an idea?

I've moved the webpack specific things from .aegir.js and the .babelrc into AEgir.
Though there is an issue now. babel --watch doesn't work anymore as there is no .babelrc file. I have no clue how to fix this. I didn't find a way to make the Babel CLI pick up a .babelrc that is bundled with AEgir. @Gozala Do you have an idea?

Sorry I'm not that JS tooling savvy to be honest. Looking at the babel documentation it does not seems like you could provide alternative path to .babelrc.
Given this limitation I think best option would be to add some command to AEgir itself to do just what npm start was configured to do here. In fact it may be a better option regardless that way  npm start script colud be just start: "aegir --watch build" or something.

@Gozala The plan surely is to have a an aegir watch, though I have no clue how to do that (yet). But I'm sure I'll find a way/someone who knows.

@Gozala The plan surely is to have a an aegir watch, though I have no clue how to do that (yet). But I'm sure I'll find a way/someone who knows.

I must have misunderstood you. I don't really know how AEgir is set up sadly. I also realize now that it probably doesn't even makes use of babel so it's not just matter of exposing --watch as initially thought.
I took another look and it seems that babel-cli has extends option that takes "A path to an .babelrc file to extend" which sounds promising, as you could have a default .babelrc bundled with AEgir and presumably watch command would just invoke babel-cli passing it extends option pointing to that bundled configuration.

I also couldn't get extends working. I added up implementing a watcher myself (https://github.com/ipfs/aegir/pull/213/commits/8fae4f4b759999b50251b1ffac54c355b7246873). That one can also be used to replace flow-copy-source. It's not ideal (I dislike re-inventing the wheel), but seems to do the job.
For the record: What kind of worked with babel-cli was npx babel --no-babelrc --presets env,flow-node --watch. Though I didn't see how I could possible pass options in. I guess you'd need to create a custom preset.

I think the only thing left is to move the flow stuff (the type checking command, files copying when watching and the .flowconfig) into AEgir. I won't have time this week, so if anyone wants to pick it up, that would be great.

I would be keen to take a stab at that. But only next week

On Apr 11, 2018, at 3:46 PM, Volker Mische<EMAIL_ADDRESS>wrote:
I think the only thing left is to move the flow stuff (the type checking command, files copying when watching and the .flowconfig) into AEgir. I won't have time this week, so if anyone wants to pick it up, that would be great.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

For everyone watching this PR: If shouldn't feel blocked on the changes on AEgir if you want to port other modules to Flow. You can use this PR as a template, but don't need to stay up-to-date. We'll figure things out later.

All changes I wanted to be part of AEgir are there now. Please review https://github.com/ipfs/aegir/pull/213 as that's the branch that will be used if we merge this PR.

We are using TypeScript types in JSDoc instead. That endevour is tracked at https://github.com/ipfs/js-ipfs/issues/2945. Hence closing this issue. Thanks everyone who were involved in trying to make Flow happen.


python3Packages.smart-open: 5.1.0 -> 5.2.0

Motivation for this change
Update to latest upstream release 5.2.0
CHange log: https://github.com/RaRe-Technologies/smart_open/blob/develop/CHANGELOG.md#520-18-august-2021
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all packages 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/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

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

8 packages marked as broken and skipped:

python38Packages.pathy
python38Packages.spacy
python38Packages.spacy-transformers
python38Packages.textacy
python39Packages.pathy
python39Packages.spacy
python39Packages.spacy-transformers
python39Packages.textacy

5 packages built:

python38Packages.gensim
python38Packages.smart-open
python39Packages.gensim
python39Packages.smart-open
snakemake


Fix Any to Tuple type cast

Currently, tuple type doesn't support cast to any type.

This is fixed now.


Channel name in the subscribe callback

On the pub/sub function for pawn-redis, the callback from subscribe only forwards 1 param to the callback function and that is the content of the message sent via publish. (here)
However, in the source: here it has the first param as the channel and the second as the message.
Is there any way of getting the channel that sent the broadcast inside the callback in pawn if its callback(msg) and not callback(channel, msg) ?
If not, would it make sense of implementing it because more channels could be returning to the same callback however all of the data would be handled the same because there currently is no way of knowing which channel triggered the callback?

But you can specify which callback to send it to for each channel you subscribe to.

For example
main()
{
    // Redis stuff
    // PubSub setup
    // Subscribe
    Redis_Subscribe("localhost", 6379, "", "server01.gm.event.my_event", "PS_OnMyEvent", ps_id);
    Redis_Subscribe("localhost", 6379, "", "server01.gm.event.my_second_event", "PS_OnMySecondEvent", ps_id);
}

public PS_OnMyEvent(data[])
{
   // channel is my_event
}

public PS_OnMySecondEvent(data[])
{
    // channel is my_second_event
}

@ADRFranklin

But you can specify which callback to send it to for each channel you subscribe to.

Yes, but say I want for player to subscribe to their own channels and I want to handle that data the same for them but with different params, I currently can't do that.
Say I want to create a chat system. I need a user (user_a) to connect to his own channel and listen to messages. Whoever wants to send user_a a message (user_b), he publishes to the user_a's channel. That's fine only I can't dynamically create callbacks for each user. I would need to know from which channel the callback was triggered to know to whom to send the message (in our case I would need to know that I have to send the message to user_a)
Pseudo(ish)? code
Redis_Subscribe("localhost", 6379, "", "chat_user_a", "RecieveChatMessage", pubsub_id);

public RecieveChatMessage(channel, message)
{
    new playerid = getPlayerId(channel); // channel would be chat_user_a where "a" would be unique for every user
    SendClientMessage(playerid, message);
}

Pivoted to using one redis channel and sending a json payload to specify the reciever and the content
Using: https://github.com/Southclaws/pawn-json


Can't run cncli v5.3.0 on debian 11 bullseye

Describe the bug
when I run cncli --version on debian 11, I get:
./cncli: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./cncli)
./cncli: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by ./cncli)
./cncli: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./cncli)

To Reproduce
run cncli --version on debian 11
Expected behavior
cncli works
Desktop (please complete the following information):

OS: Debian 11 bullseye

I will try to build glibc from sources, but it is not really what I want to do :(

For Debian, you're going to need to build it from scratch.


Fix session mechanism

For now, all auth APIs except logging out & session APIs should work. These should be fixed when OIDC is completed, since they need to handle both IdP session and OIDC offline grants.
The session types are getting complicated now, so I'll explain here:
The primary session interface is core/authn.Session, it represents a stateful session that is visible to user. It has 3 implementation:

auth/session.Session: the IdP session
auth/oidc.OfflineGrant(TBC): the OIDC offline grant
core/authn.Info: Info bundle representing the other two, produced by gateway and consumed by gears/microservices.

The secondary session interface is core/authn.Attributer, it represents container of authentication attributes (e.g. user, principal, authenticator). All 3 session implementations conform to this, in additional to authentication session (auth/authn.Session), which is stateless and has no ID.
For internal use of auth, there is another session interface auth/auth.Session. It represents both IdP session and OIDC offline grant, and have additional methods (e.g. API model conversion).
To get session information from context, core/authn.GetUser or core/authn.GetSession should be used. For auth, the corresponding functions in auth/auth package should be used instead.
There should be a middleware for use of gear, to parse a core/authn.Info from request headers and inject it into core/authn context.
@louischan-oursky @carmenlau Please let me know if the explanation makes sense. We should compile these info into docs in repo after completing this milestone.
depends on #1262

I think it's better to keep the name of core/authn.Session, since it is the main session type that other types are based on it. Also, after changing according to your comments, it would be the only type with the name Session, so it wouldn't be too confusing.


Sauce Labs with Cypress: How can we configure to mark tests as passed when test pass on retry.

Current behavior
When tests pass on retry,  sauce labs make the test as failed.
Example: With cypress retry https://docs.cypress.io/guides/guides/test-retries#Introduction
Attempt 1: Test failed.
Attempt 2: Test failed.
Attempt 3: Test passed
Test is marked as failed.
Desired behavior
When tests pass on retry,  sauce labs should mark the test as passed.  (at least a way to configure if not by default)
Example: With cypress retry https://docs.cypress.io/guides/guides/test-retries#Introduction
Attempt 1: Test failed.
Attempt 2: Test failed.
Attempt 3: Test passed
Test marked as passed.

Do you have a Sauce Labs job you could link for us to take a look at?

Closing due to inactivity.


How can I add table attributes?

I saw in the code that is possible but looks not implemented....
I can do a PR, but, is this project active (or at least the PR will be analysed)?

Hi,
see https://github.com/donquixote/cellbrush/pull/7

is this project active

I spend time on projects like this every few months or once a year or so, depending if I have time.
The problem is not the time itself, but how I split my attention. It always takes me some time when I look at a project I have not touched for a while, until my brain is back on track.
And I often hesitate with new features because once a feature is added, I have to backward-support it.

Add any attribute should use same way of functions like AddRowClass(), indeed, it must be replace for something like AddAttr()
Miss this function is annoying...
Thanks anyway. Great class.

Fixed!
@makoru-hikage
I cherry-picked your commit and added a test.


Will this be updated to 4.5?

Now that raylib 5 was released, with some breaking changes and nice additions, i wonder if this package will be updated too.
I'm currently working on a fork with raylib 5.0 and it's working fine (atleast on windows). If @chengchingwen decides that it would be a good idea, i'll make a PR for it.

@dylanxyz A PR would be great! Did you build the Raylib_jll with raylib v5.0 locally? we might need to make a PR to update Raylib_jll for raylib v5.0 so that this package can use it directly.


Implement the basic GET functionality as DB-Connected services

In a separate branch (!) Project and Image must be implemented as DB-Connected services. Just to see how it will work.

It's working fine, but the resources/entities don't know anything about each other and so no response data nesting is possible. Well, as also the official docu says, this is more of a rapid application development (RAD) or prototyping tool.


Mysql backend memory leaks due to mysql_library_init()

Hi,
It seems that mysql_init() implicitly calls mysql_library_init().
Unfortunately mysql_close() doesn't calls mysql_library_end(), resulting in 2 memory leaks.
You should explicitly call mysql_library_end() in your mysql_session_backend::clean_up() function.
https://github.com/SOCI/soci/blob/master/src/backends/mysql/session.cpp#L405
I'll do a pull request to add it.
Regards,

Regarding "it seems", you likely refer to the remarks from the MySQL docs:

In a nonmulti-threaded environment, mysql_init() invokes mysql_library_init() automatically as necessary. However, mysql_library_init() is not thread-safe in a multi-threaded environment, and thus neither is mysql_init(). Before calling mysql_init(), either call mysql_library_init() prior to spawning any threads, or use a mutex to protect the mysql_library_init() call. This should be done prior to any other client library call.

PR is welcome!

Absolutely !
The need to call mysql_library_end() is well explained in the Mysql C API Function Overview

The purpose of calling mysql_library_init() and mysql_library_end() is to provide proper initialization and finalization of the MySQL library. For applications that are linked with the client library, they provide improved memory management. If you do not call mysql_library_end(), a block of memory remains allocated. (This does not increase the amount of memory used by the application, but some memory leak detectors will complain about it.) For applications that are linked with the embedded server, these calls start and stop the server.

It looks like a call to mysql_thread_end() is missing from mysql_session_backend::clean_up()
See https://dev.mysql.com/doc/refman/8.0/en/mysql-thread-end.html


Broken logos

Logos in README.md are broken. (Not visible)

Can Change It!!

Can I work on this issue?

@201B153 hey can you check my PR ( Broken logos #1204) I made the changes in the logo
but I have no idea what to put as the logo in 'Dependency Status' and 'devDependencies Status'
can you tell me so that I can make the changes required
also can you lable this as a hacktoberfest PR

收到！


Add support for profile API call

Currently not able to test, as I don't have any API credentials with the monzo_app scope. However, the endpoint has been confirmed by Nicholas Robinson-Wall (Monzo Staff) on Slack.

Coverage decreased (-1.4%) to 93.878% when pulling 7ca9130cf2f04c635af9505b229622a551ebdb3d on cyberjacob:master into 2ed4b232507d696db8ac889d41319a3c7e8793a3 on pawelad:master.

Coverage decreased (-1.4%) to 93.878% when pulling 5ed786208de973da93d24b861fb88e6e8b5f1b0c on cyberjacob:master into 2ed4b232507d696db8ac889d41319a3c7e8793a3 on pawelad:master.

@cyberjacob Thanks very much for this! Regarding the tests and vcrpy, you would have to record an actual API response which might be hard given the lack of API credentials ; -)
Hopefully I'll take care of it this week, merge it and release a new version.

Ah, that would explain it. I've got a sample response, but I'm not sure if it contains all the attributes or just the ones being discussed, if that makes a difference?

You would need to convert it to vcrpy cassete format, so it's probably easier to record a real one and obfuscate the data, the same way I did all the other.
Like I said, this requires valid API credentials so if you don't have any then you'll have to wait for me to find half an hour of free time ; )

Monzo has mentioned that this endpoint is being deprecated, so not much point it adding support for it.

OK, thanks for letting me know!


As a cluster owner, I want to have more control over Node rollout during credential rotation

How to categorize this issue?

/kind enhancement
What would you like to be added:
As a cluster owner, I want to have more control over Node rollout during credential rotation, such that I can use the same processes I'm using for other Node rollouts triggered by Shoot spec changes.
Why is this needed:
For properties like k8s version updates, OS version updates and worker settings, cluster owners can control the Node rollout per worker group. To do this, they specify those properties on the worker configuration instead of using properties available for the whole Shoot.
This is necessary, because some owner want to control themselves, when which worker group is rolled and how much time should be between the rollout of two worker groups.
We currently don't have the same amount of control for our process of Shoot Credential Rotation, which at some step just rolls all Nodes without offering any means of control for the cluster owner.
The most critical part of the credential rotation seems to be the Certificate Authorities, because it rolls all Nodes in stage 1:

In stage one, new CAs are created and added to the bundle (together with the old CAs). Client certificates are re-issued immediately.
In stage two, end-users update all cluster API clients that communicate with the control plane.
In stage three, the old CAs are dropped from the bundle and server certificate are re-issued.
(...)
Note that the CA rotation also rotates all internal CAs and signed certificates. Hence, most of the components need to be restarted (including etcd and kube-apiserver).

⚠ In stage one, all worker nodes of the Shoot will be rolled out to ensure that the Pods as well as the kubelets get the updated credentials as well.

Proposal
Split up phase 1 of CA rotation, such that

all steps up to the point where the worker nodes would be rolled are done
it is up to the cluster owner to roll the workers in a way that they deem best for their clusters (either by pool, or even recreating the nodes one-by-one)
allow for enough time for this process. Some cluster owners take 1-2 weeks to roll all their nodes
continue with the next phases once the node rolling process has been marked as completed

As an owner of many clusters with several hundred workers I would like to underline the importance of this requirement. Doing a node rolling is a customer facing downtime in our scenario and we need the ability to get control over it. Taking the cluster down immediately and entirely for a certificate exchange cannot be communicated to our service users.
The ability to control it per workergroup allows us to use blue/green pools where we can carefully transition our workload from workers with older certificates to workers with newer certificates while using customer-triggered events with downtime (e.g. instance resizes or service updates) and allows us to place the service instance downtime to a maintenance window of our choice - or at best the customer's choice.
With this, a certificate or credential rotation could be easily combined with quarterly updates for Kubernetes, host OS and system updates.
Thus, we would highly appreciate this functionality.

Today, rotation of credentials is triggered with rotate-credentials-start (or, rotate-ca-start for CA rotation, or rotate-serviceaccount-key-start for ServiceAccount signing key rotation, respectively). All these lead to the node rollout. Only after this is done, you can perform rotate-{credentials,ca,serviceaccount-key}-complete to finalize the rotation and invalidate the old keys.
To support your request, this cannot remain like this (at least the rotate-*-start part). You must be able to individually trigger rollout of worker pools. Only after all worker pools are rolled out, rotate-*-complete may be called.
@epDHowwD Can you specify how you envision the ideal UX for this?

I do not really understand the proposal/why you recommend it @epDHowwD. It also reads very complex, even complicated.
Maybe, let's go back to what you want: Credentials rotation and being in control of the node roll-out.
Do you need a long period of time between start and stop of the credentials rotation and being in control to cordon/drain/terminate the nodes at your own pace? That's what @voelzmo wrote also in his description.

Well, why do I propose this? I want to get control over node rolling. The spec change of a workerGroup for certain fields is what causes the node rolling. I can do the change when it is okay to do it. At other times, I just don't do this change.
That's basically the current strategy, also for machine types and machine images.
The alternative would be to disallow node rolling for some workergroups.
Option 1: User controls when the change happens via explicit spec change of workerGroup
Basically the rotation process takes, let's say a week. You start with an existing credential blue and it is used by all workergroups. You have three types of workergroups:

default - update anytime, node rolling does not cause customer visible downtime
blue-worker - scaled to let's say 10, node rolling would cause customer visible downtime
green-worker - scaled to 0, tainted to avoid new workload, node rolling does not cause customer visible downtime while scale=0.

Now you introduce a new secret. It does not matter for me who creates this secret on which event. In my proposal it was an explicit Kubernetes secret because I find that easy to understand, but you can also create it as like it is now and triggered on the event of annotation gardener.cloud/operation changing. Then one needs to know that there is a new secret available for consumption on worker groups.
As a second step, I would change workergroups default and green-worker to consume this new credential. It needs to be a spec change in any form. In my proposal that is an own field, e.g. acceptedSSHPairs, but you can also propose anything else. Having this as an annotation would look weird, as this would become an annotation on the nodes at runtime. I don't think it belongs there. That spec change causes the node rolling, just like now. It can be safely done for default and green-worker, but it is not done for blue-worker at this point. That's the important part.
At this point we do a b/g swap. In particular the taint from green-worker is removed and introduced for blue-worker instead. Now all new or restarted workload will be hosted on green-workers with new credential.
We from consumer side have to guarantee that the workload is also restarted within an acceptable period, e.g. one week. There are options for customers to choose a point in time to do that for their convenience.
After one week, the workergroup blue-worker is scaled to 0. At that moment, we can introduce the same spec change on that workergroup so that all workergroups now consume the green credential.
Option 2: User controls when the change happens via a setting of the workerGroup to limit node rolling in general
A shorter interface might be to have a field on the workergroup to incorporate secret changes only when the group is scaled to 0.
So conceptually:
spec:
    workers:
    - name: default
       nodeRolling: anytime
    - name: worker-blue
       nodeRolling: when scale 0
    - name: worker-green
       nodeRolling: when scale 0

This would then not require the user to tell Gardener which group is currently ok to roll, as it is anyhow never possible while  workers exist.
If we think about it, it can be combined with the maxSurge logic, which we could simply set to 0 to disallow node rolling while the workerGroup is scaled to >0. Other spec changes that require node rolling, s.a. changes of machine type, machine image, Kubernetes major version changes, etc. might be disallowed as well with that.
spec:
    workers:
    - name: default
       maxSurge: 15%
    - name: worker-blue
       maxSurge: 0
    - name: worker-green
       maxSurge: 0

The process for credential rotation is to set the gardener.cloud/operation annotation just like now and then we wait for one or two weeks for its completion. Obviously it would be hard to have other operations meanwhile, so that part of the interface might not be the best option. We had the same struggle in the design for operations on product instances, like upgrades or backups, which are as well modeled as CRD+operator. We came with a Operation CRD that models the request to perform an operation on an instance individually. You can have multiple at once per instance and every of them can have a state reporting the operations progress.
I admit I don't know if this annotation is used for other operations than credential rotation right now and if we would block ourselves from using this, when the operation takes a week.

@epDHowwD I suggest to get back to your needs, not how you would implement them. It is very difficult for me to follow you, because you make too many assumptions, some of which appear wrong to me (e.g. why would you want to control which "credential" you use, the old or the new ones - that should not matter to you; we roll the nodes to be sure that there is nothing left that uses the old "credential" when we drop it later - that's a completely different goal that doesn't require anybody to "pick" between old and new "credentials"). Then there are so many other confusing things you mention like secrets. I can try to ignore them, but you build upon them and that's not going to happen (the kind of secrets you suggest). Also, it doesn't have to be an explicit spec change (similar to OnDelete StatefulSet update strategy it could only affect new machines), etc.
Please, do not propose an implementation or how the spec would look like. Please explain your requirements. Reading between the lines is very hard and may lead to misinterpretations. So, what exactly do you need (no implementation suggestions anymore)? Is there some real reason to suggest "picking" between old or new "credentials" or was that just an artefact of suggesting an implementation?
You can also say, that's it:

We need X weeks or months between start and finish of credentials rotation
We do not want the nodes to be rolled at all because of credentials rotation
As we have understood, all nodes that existed before the start of the credentials rotation must be gone before finishing the credentials rotation, we will make sure to replace the nodes as we see fit (before we finish the credentials rotation)
If we make a mistake, please reject finishing the credentials rotation

Something like this would be helpful (your abstract requirements, no concrete implementation and spec proposal).

Ok, sorry for that. I was asked to propose a UX and tried to fit this into the picture. So from requirement perspective:
Generally it would be better to not require a node restart at all for a credential rotation, because then we do not have to think about where to place the customer visible downtime which this causes, as there is none. However, if it cannot be avoided from your end, we need to be in control of when the node is removed from the system.
Background of the requirement is that we can put the node draining specifically into acceptable times, which can be customer choice or our maintenance window where we can place customer visible downtimes if it cannot be avoided. We speak about a period of 1-2 weeks.
Additionally, we need to be able to monitor the progress of the credential rotation. A credential rotation being stuck or incomplete is a security issue and we need to be able to alert on it, and investigate it from our end. For example, let's assume a workerGroup was not rolled as planned and therefore the credential rotation is stuck for more that the acceptable timeframe of 2 weeks, then I need to be able to identify the workers that did not yet adopt the rotated credential to make sure they do, which can involve a customer visible out-of-maintenance downtime for security reasons or alternatively we accept the incomplete rotation for a quarter.
We can save a lot of this organizational effort, when the credential rotation is not requiring the nodes to be rolled, but is live-updated. We would definitely prefer that.

Thank you @epDHowwD.
Life update, or in-place update as we call it, doesn't solve the problem. We roll the nodes because that's how we "force" all end-user pods to be recreated and pick up the new CAs if they use it, i.e. it's to protect the users from mistakes/bad clients that do not notice that the CA is new.
If users would sign with blood that they don't mind/take the risk, we wouldn't care anymore, but if we open that door, endless many end users will shoot themselves in the foot. I guess that's (another reason) why also the cloud providers do the same. Nothing will be forgotten if everything is force-rolled.

Currently it seems that we don't want to follow up on other approaches, as @vlerenc already concluded.

Based on the current design, we could add the following to realise this request:

Add new operation annotations: rotate-{ca,serviceaccount-key,credentials}-start-without-nodes-rollout
In addition to the current rotation phases Preparing, Prepared, Completing, Completed, we propose to introduce two new phases PreparingWithoutNodesRollout and WaitingForNodesRollout.
When the user now starts a rotation with e.g. rotate-ca-start-without-nodes-rollout, this results in the following changes in the ShootStatus:credentials:
  rotation:
    certificateAuthorities:
      lastInitiationTime: "2024-12-03T12:09:49Z" # now
      phase: PreparingWithoutNodesRollout # New rotation phase instead of Preparing, path here now is PreparingWithoutNodesRollout -> WaitingForNodesRollout -> Prepared -> Completing -> Completed
      pendingNodesRollouts:
      - workerPoolName: pool1-name
        lastInitiationTime: "2024-12-02T08:15:13Z" # previous `certificateAuthorities.lastInitiationTime` if set, or `nil` otherwise
      # ...

The Shoot reconciliation would not result in a nodes rollout, hence, when it finishes, then the phase switches:  credentials:
    rotation:
      certificateAuthorities:
        lastInitiationTime: "2024-12-03T12:09:49Z"
        phase: WaitingForNodesRollout
        pendingNodesRollouts:
        - workerPoolName: pool1-name
          lastInitiationTime: "2024-12-02T08:15:13Z"
        # ...

Now the user can initiate nodes rollouts for one or more worker pools via new operation annotation rotate-rollout-nodes=<pool1-name>[,<pool2-name>,...]
This removes the mentioned worker pools from the pendingNodesRollouts list in the ShootStatus:credentials:
  rotation:
    certificateAuthorities:
      lastInitiationTime: "2024-12-03T12:09:49Z"
      phase: WaitingForNodesRollout
      pendingNodesRollouts: []

Implemenation Detail: This causes the hash calculation to pick up the "global" lastInitiationTime and trigger the rollout as usual.
When a reconciliation in phase WaitingForNodesRollout finishes and pendingNodesRollouts is empty now, then the phase switches:credentials:
  rotation:
    certificateAuthorities:
      lastInitiationTime: "2024-12-03T12:09:49Z"
      phase: Prepared

Now the user can just complete the rotation as usual (rotate-{ca,serviceaccount-key,credentials}-complete) which invalidates the old CA.

/assign


Rewrite in C

Rust is a memory-unsafe language and should be considered deprecated. We should instead rewrite it in the new modern language C. This rewrite will be blazing fast 🔥🔥🔥 and memory safe.

rewrite it in haskell, we all know C and Rust aren't pure neither memory efficient


Elasticsearch vector store

Please consider porting the vector store support for ES / OS:
https://github.com/hwchase17/langchain/blob/master/langchain/vectorstores/elastic_vector_search.py
Sidenote
I was playing with using current Opensearch adapter with ES to prototype this, it seems there's a bit more work than expected. Namely, ES v7 doesn't support the knn query type OS supports, it only allows cosineSimilarity() like implemented in the Python version linked above.
ES v8 does support knn  (which they call "Approximate kNN") which is supposedly better performing with a large number of documents in ES, but comes with a caveat the vector dimensions are only up to 1024 (with index: true setting which knn query type requires) , while OpenAI embeddings by text-embedding-ada-002 are by default 1536.
TLDR:

base approach taken in Python version works
with a large number of documents and/or advanced features, the new approach should be taken which will cause some implementation issues and tradeoffs.

Update: with ES 8.8, it now supports 2048 dimensions for vectors, meaning ADA embeddings should fit into dense vectors on which ES knows how to do kNN queries.

Opensearch in #792

Not sure if this related, but MongoDB Atlas search is also hit the 1024 dimensions restriction when using knn vector field, which means the OpenAi embedding is not compatible with mongo vector store neither.

@peterkarman1 you'll not be able to use the knn query, which might not be an issue for you.
Overall, the adapter should be very similar to the existing OpenSearch one, with very minor tweaks, I'm sure PRs are welcome.

Closed in #1810.


login problem

how to login ?
give some sample code
what is token ?
could you explain about this ?

Login is a three steps process as mentioned below. Access token is the third step in the process.

Perform Authentication: Access detailed instructions at Perform Authentication.
Receive Auth Code: For this step, visit Receive Auth Code.
Generate Access Token: To generate the access token, refer to Generate Access Token.

I recommend reviewing the documentation to grasp the process better at https://upstox.com/developer/api-documentation/open-api


Visual Studio Code deesn't seem on Windows 11

Does this issue occur when all extensions are disabled?: Yes

VS Code Version: 1.94.0 (user setup)
OS Version: Windows_NT x64 10.0.22631

Steps to Reproduce:

Visual Studio Code doesn't appear while searching on Windows 11. The only way to open Visual Studio Code is to right click on file itself

Does this still happen if you manually uninstall/reinstall vscode using the installer from the website?

I solved that problem uninstalling Visual Studio Code completely and reinstall it again from the website. There is some problem on Microsoft Store I think


.crypto errors

Im getting sometimes this error. And to fix it i need to restart whole application (Bot)

@Jengas is it really fixed after bot restart? Or does your bot die after that happens? I don't get it.

I mean, sometimes this error happens (But other commands after this error still works). If i will restart and write .crypto ICO, this will work again. But in few hours this will happen again (Error). But with error bot works fine (Only that command gives error and not working)


CASSANDRA-16969  4.3.0 fixes license check

Files with unapproved licenses:
/home/claude/apache/cassandra-java-driver/.gitignore
/home/claude/apache/cassandra-java-driver/manual/.nav
/home/claude/apache/cassandra-java-driver/manual/core/statements/.nav
/home/claude/apache/cassandra-java-driver/manual/developer/.nav
/home/claude/apache/cassandra-java-driver/manual/developer/common/.nav
/home/claude/apache/cassandra-java-driver/manual/mapper/.nav
/home/claude/apache/cassandra-java-driver/manual/mapper/daos/.nav
/home/claude/apache/cassandra-java-driver/manual/query_builder/.nav
/home/claude/apache/cassandra-java-driver/manual/query_builder/schema/.nav
/home/claude/apache/cassandra-java-driver/mapper-processor/src/main/resources/META-INF/services/javax.annotation.processing.Processor
/home/claude/apache/cassandra-java-driver/test-infra/src/main/resources/client.crt
/home/claude/apache/cassandra-java-driver/test-infra/src/main/resources/client.key
I believe all of the above files are acceptable.

Please close in favor of #1826 (which retains original contributor credit)

Closing based on quick conversation with @Claudenw