promiseStateAsync swallows unhandled rejections if they are rejected after being observed by the Promise.race

Using the following snippet, promiseStateAsync will swallow unhandled rejections if the promise is rejected after being inspected by promiseStateAsync
const marker = Symbol("marker");

async function promiseStateAsync(promise) {
  if (!(typeof promise === "object" && typeof promise.then === "function")) {
    throw new TypeError(`Expected a promise, got ${typeof promise}`);
  }

  // Ensure unhandled rejections don't get swallowed.
  await new Promise((resolve) => {
    if (typeof setImmediate === "function") {
      setImmediate(resolve);
    } else {
      setTimeout(resolve);
    }
  });

  try {
    return (await Promise.race([promise, marker])) === marker
      ? "pending"
      : "fulfilled";
  } catch {
    return "rejected";
  }
}

let reject;
let promise = new Promise((_res, rej) => {
  reject = rej;
});

const promiseState = await promiseStateAsync(promise);
console.log(promiseState);

setTimeout(() => {
  reject("dinosaur");
  console.log("the setTimeout triggered");
}, 1000);

Note: in the browser I used the following events to check if the unhandled rejection event is raised, which it wasn't:
window.addEventListener("unhandledrejection", (ev) => {
  console.warn(`UNHANDLED PROMISE REJECTION: ${ev.reason}`);
});

window.addEventListener('error', (ev) => {
  console.warn(`UNHANDLED ERROR: ${ev.reason}`);
});

This behavior is seen in both Node and browsers
I have tested it on the following platforms:
Win11 Chrome Version 122.0.6261.129
Win11 Firefox Version 123.0.1
macOS Sonoma 14.4 Chrome Version 122.0.6261.129
macOS Sonoma 14.4 Firefox Version 123.0.1
macOS Sonoma 14.4 Safari Version 17.4 (196<IP_ADDRESS>.12)
Node versions v18.16.1 and v20.11.0 on both Win11 and macOS Sonoma 14.4

Thanks for reporting. I'm not sure how to fix this, but I have at least added a failing test: https://github.com/sindresorhus/p-state/commit/4634d7b963ae5c2bfd20be496db3b967944b2337

Hello again, I have a solution for this Issue:
export async function promiseStateAsync(promise) {
	if (!(typeof promise === 'object' && typeof promise.then === 'function')) {
		throw new TypeError(`Expected a promise, got ${typeof promise}`);
	}

	let promiseState = 'pending';
	let promiseSettled = false;

	// `.finally` doesn't handle uncaught rejections
	promise.finally(() => {
		promiseSettled = true;
	});

	// We wait an event loop for `.finally` to resolve.
	// If it doesn't resolve by then that means the promise
	// is still `pending`.
	await new Promise(resolve => {
		if (typeof setImmediate === 'function') {
			setImmediate(resolve);
		} else {
			setTimeout(resolve);
		}
	});

	// If the passed function to `.finally` is not
	// invoked in an event loop that means the promise
	// is not yet settled, so we return `pending`.
	if (!promiseSettled) {
		return promiseState;
	}

	promise.then(
		() => {
			promiseState = 'fulfilled';
		},
		() => {
			promiseState = 'rejected';
		},
	);

	// We wait for 1 event loop for `.then` to resolve
	// knowing that the promise is settled to extract
	// the status of the promise
	await new Promise(resolve => {
		if (typeof setImmediate === 'function') {
			setImmediate(resolve);
		} else {
			setTimeout(resolve);
		}
	});

	return promiseState;
}

I ran the repo tests successfully on:
macOS Sonoma 14.4.1 (23E224)
Node:

v18.16.1
v20.11.0

Win 11
Node:

v18.19.0
v20.11.0

Results:
6 tests passed
4 unhandled rejections
I also ran the following assertions in the browsers:
(async () => {
  console.assert(await promiseStateAsync(Promise.resolve()) === "fulfilled");
  console.assert(await promiseStateAsync(Promise.reject("Dino 1")) === "rejected");
  console.assert(await promiseStateAsync(new Promise(() => {})) === "pending");

  const {promise: promiseThatWillReject, reject } = Promise.withResolvers();

  console.assert(await promiseStateAsync(promiseThatWillReject) === "pending");

  setTimeout(async () => {
    reject("Dino 2");
    console.assert(await promiseStateAsync(promiseThatWillReject) === "rejected");
  }, 150);

  const {promise: promiseThatWillResolve, resolve} = Promise.withResolvers();

  console.assert(await promiseStateAsync(promiseThatWillResolve) === "pending");

  setTimeout(async () => {
    resolve();
    console.assert(await promiseStateAsync(promiseThatWillResolve) === "fulfilled");
  }, 150);
})();

Tested on the following browsers:
macOS Sonoma 14.4.1 (23E224)

Safari Version 17.4.1 (196<IP_ADDRESS>.14)
Chrome Version 124.0.6367.119
Firefox Version 125.0.3

Win 11

Chrome Version 124.0.6367.119
Firefox Version 125.0.3

Results:
Uncaught (in promise) Dino 1
Uncaught (in promise) Dino 2 (x2)
The downside is that the state will take an extra event loop run to be returned (if the promise is not pending)
Also this solution doesn't need to pass 1 to the setTimeout because .finally doesn't handle uncaught rejections like Promise.race.
The stackoverflow answers that led me to .finally:
https://stackoverflow.com/a/41130732
https://stackoverflow.com/a/63534721


minor frontend issues

In order from most to least important issues:

adjust spacing between reference and alignment
Remove top navigation bar since Overalls is now all on one page
Getting rid of “Loading alignment, Issued 1 request”  pileup icon (gui is jumpy when loading), bring back the beachball loading?
Optional type in text field rather than using selection box (bring back autocomplete and form checking functions)
Pileup’s Alignment “View as pairs”, “Sort alignments” functionalities don’t work

Separated out into multiple issues


Add organisational data

This adds fields for

title
role
org
member

from issue #2

StyleCI fails because of the Constructor property promotion. Is that something I should fix in the PR?

No, you can't. styleCI isn't PHP 8 compatible yet. I will switch to PHP cs later.

I've taken this table as a reference. https://en.wikipedia.org/wiki/VCard#Properties
If you know/have something better that possibly even proves me wrong with some assumptions: let me know.

https://github.com/Astrotomic/laravel-vcard/releases/tag/0.1.0


TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.
If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/92786

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/93950

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/95379

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/96525

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/99194

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/107892

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/112778


dataset

Hello!I've been studying your code recently. I hope you can share your EEG data set

My email is<EMAIL_ADDRESS>Looking forward to your reply.

Hello, I saw your project on generating EEG data using GAN. Thank you very much for your sharing. Can you share the dataset you use? I want to reproduce your work. thank you! My email address is<EMAIL_ADDRESS>Thanks again!

Hi, I'm very interesting in this project. I also want to get this data set. My email is<EMAIL_ADDRESS>could you share with me, please!


How to model behaviors that can only be sampled asynchronously

Consider a "behavior" such as the state of some data on a remote system (perhaps accessible via a REST API). The state exists at all points in time, but in order to access it locally I need to communicate asynchronously with the remote machine over the network.
In something like rxjs, I don't really have a choice: everything must be modeled as a stream. I'd probably do something like const req = new Subject(); const responses = req.flatMap(_ => updateState()).publish(), subscribe my response handling to responses, and do req.next() whenever I want to update the remote state. Or perhaps something simpler, like Observable.interval(1000).flatMap(_ => updateState()), although this is worse for granularity.
So in hareactive, do I model this kind of thing as a Behavior<Future<TState>> or something?

Hello @masaeedu. I apologize for the late response. That is a very good question.
You can definitely do something similar to the approach you're describing with RxJS. Start with a Stream, map it to a stream of requests and then merge it to a behavior in the end. Here is some pseudocode:
// get a stream of requests
someStream.map(doRequest);
// run the side-effects
performStream(requests);
// and convert it to a behavior
stepper(initialValue, requestResults);

That may be the best way to do it. Since the example you're describing uses HTTP it's not possible for the remote machine to push changes to the client. The client will have to poll regularly. How often would you ideally want this polling to happen? Every n'th seconds? Or whenever something particularly happens in the app?
One problem with regards to behaviors that can only be sampled asynchronously is with functions like snapshot. snapshot needs the value at a behavior exactly when some event occurs on a stream. This is not possible if the behavior cannot be sampled synchronously.
But, I @limemloh has been working on and thinking about how to support asynchronous behaviors anyway. I think it would be very helpful if you would describe what your ideal solution would be? Are you happy with the RxJS-like solution? Or do you imagine a better way to do it?


Thread-safe memoize

Hey @aballano , thanks for great extension.
It works well in one-thread environment.
What do you think about overloading extension functions to have an ablitiy to use them in mutli threading environment, e.g.:
fun <A, R> ((A) -> R).memoize(cache: MutableMap<A, R> = HashMap(DEFAULT_CAPACITY)): (A) -> R

With that approach we can put ConcurrentHashMap or others.
Usage:
private val memoizedSafeFib = ::fib.memoize(ConcurrentHashMap())
fun callMeFromDifferentThreads(arg: Int): Long = memoizedSafeFib(arg)

Hi @ultraon thanks for the feedback!
I think it would make sense, mainly because is not the intention of the library to impose which cache to use. Something like this might be enough while also ensuring backwards compatibility:
fun <A, R> ((A) -> R).memoize(initialCapacity: Int = 50, cache: MutableMap<A, R> = HashMap(initialCapacity)): (A) -> R =
      { a: A -> cache.getOrPut(a) { this(a) } }


MS Azure - Could not import faiss-node ... faiss-node.node is not a valid Win32 application

Checked other resources

[X] I added a very descriptive title to this issue.
[X] I searched the LangChain.js documentation with the integrated search.
[X] I used the GitHub search to find a similar question and didn't find it.
[X] I am sure that this is a bug in LangChain.js rather than my code.
[X] The bug is not resolved by updating to the latest stable version of LangChain (or the specific integration package).

Example Code
import statement:
import { FaissStore } from '@langchain/community/vectorstores/faiss';
package.json
{
    "name": "pdf-chat-prototype",
    "version": "0.1.0",
    "description": "",
    "scripts": {
        "ingest": "tsx -r dotenv/config scripts/ingest.ts",
        "start": "nodemon --exec ts-node ./src/index.ts",
        "build": "npx tsc"
    },
    "dependencies": {
        "@fastify/cors": "^9.0.1",
        "@langchain/community": "^0.2.19",
        "@langchain/core": "^0.2.17",
        "@langchain/openai": "^0.2.4",
        "ajv-errors": "^3.0.0",
        "ajv-formats": "^3.0.1",
        "dotenv": "^16.4.5",
        "faiss-node": "^0.5.1",
        "fastify": "^4.28.1",
        "langchain": "^0.2.10",
        "moment": "^2.30.1",
        "pdf-parse": "^1.1.1"
    },
    "devDependencies": {
        "@types/pdf-parse": "^1.1.4",
        "nodemon": "^3.1.4",
        "ts-node": "^10.9.2",
        "tsx": "^4.16.2",
        "typescript": "^5.5.3"
    },
    "engines": {
        "node": ">=18"
    }
}

GitHub Actions:
name: Build and deploy Node.js app to Azure Web App - mecone-chat-bot

on:
  push:
    branches:
      - azure-prod
  workflow_dispatch:

jobs:
  build:
    runs-on: windows-latest

    steps:
      - uses: actions/checkout@v4

      - name: Set up Node.js version
        uses: actions/setup-node@v3
        with:
          node-version: '18.x'

      - name: npm install
        run: |
          npm install

      - name: npm build
        run: |
          npm run build --if-present

      - name: Compress artifact before upload
        uses<EMAIL_ADDRESS>        id: compress
        with:
          command: c
          cwd: ./
          files: |
            ./dist
            ./node_modules
            ./vectors
            ./web.config
          outPath: release.tar.gz

      - name: Upload artifact for deployment job
        uses: actions/upload-artifact@v4
        with:
          name: node-app
          path: ./release.tar.gz

  deploy:
    runs-on: windows-latest
    needs: build
    environment:
      name: 'Production'
      url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}
    permissions:
      id-token: write #This is required for requesting the JWT

    steps:
      - name: Download artifact from build job
        uses: actions/download-artifact@v4
        with:
          name: node-app

      - name: Extract artifact for before deployment
        uses<EMAIL_ADDRESS>        id: extract
        with:
          command: x
          cwd: ./
          files: release.tar.gz

      - name: Remove archive before deployment
        run: |
          rm release.tar.gz

      - name: Login to Azure
        uses: azure/login@v2
        with:
          client-id: ###
          tenant-id: ###
          subscription-id: ###

      - name: 'Deploy to Azure Web App'
        uses: azure/webapps-deploy@v3
        id: deploy-to-webapp
        with:
          app-name: 'mecone-chat-bot'
          slot-name: 'Production'
          package: .

Error Message and Stack Trace (if applicable)
Could not import faiss-node. Please install faiss-node as a dependency with, e.g. npm install -S faiss-node.\n\nError: \\?\C:\home\site\wwwroot\node_modules\faiss-node\build\Release\faiss-node.node is not a valid Win32 application.\r\n\\?\C:\home\site\wwwroot\node_modules\faiss-node\build\Release\faiss-node.node
Description
Hi there,
I am having issues getting a sample app to run on an Azure Web App service. I can confirm that my app is working locally fine (MacOS) but am getting the following error after having built and deployed to a Windows-based Azure Web App service.
Could not import faiss-node. Please install faiss-node as a dependency with, e.g. `npm install -S faiss-node`.\n\nError: \\\\?\\C:\\home\\site\\wwwroot\\node_modules\\faiss-node\\build\\Release\\faiss-node.node is not a valid Win32 application.\r\n\\\\?\\C:\\home\\site\\wwwroot\\node_modules\\faiss-node\\build\\Release\\faiss-node.node

I am deploying via a GitHub actions deployment script, and have made sure that it is being built and deployed for using a Windows-based build server.
I can see a variety of similar issues reported for AWS etc. but cannot find a solution that works for me.
https://github.com/langchain-ai/langchainjs/issues/5843
https://github.com/langchain-ai/langchainjs/issues/5164
https://github.com/langchain-ai/langchainjs/issues/4027
https://github.com/langchain-ai/langchainjs/issues/3941
My error is slightly different as it is complaining that the faiss-node.node file is not a valid Win32 application.
I can locate the file mentioned in the path, running Node v18 on the Web App.

I have tried installing the package locally using npm i faiss-node via my Azure Web app, this didn't work. Additionally I tried dropping in the files from the pre-built release from faiss-node-v0.5.1-napi-v6-win32-x64.tar.gz again this didn't change anything.
Any help or guidance would be appreciated!
System Info
platform: Windows
langchain 0.2.10
node 18.19.1

Just an update - I switched out and set up a new Linux-based Web App and was able to get my app to run without any hiccups. I believe there is some compatibility issue with the Windows-based build of faiss-node but was unable to investigate any further.


Allow building ShaderDefValue from a string key alone

It's fairly common to use in shaders a simple boolean flag #if XXX to activate a feature, without caring much about its value. Currently it's rather verbose because there's no existing conversion, e.g.:
let mut shader_defs = std::collections::HashMap::<String, ShaderDefValue>::new();
shader_defs.insert("LOCAL_SPACE_SIMULATION".into(), ShaderDefValue::Bool(true));

Bevy's own ShaderDefVal on the other hand has a bunch of existing conversions from string types, which make it a lot more convenient to work with:
https://docs.rs/bevy/latest/bevy/render/render_resource/enum.ShaderDefVal.html
I transitioned a piece of code from using Bevy's specialization pipeline etc. which used ShaderDefVal, to using naga_oil to validate shader code without having to bring the entire system-based infrastructure (because the code has some #if), and found it was more verbose. Nothing critical, but this would make usage smoother.

not sure what to do here. i'm not very keen to make a struct/trait for the shader defs param since it adds complexity for people reading the source code. if there was some kind of mechanism for defaulting the values in a hashmap that would make sense, but i'm not sure there's anything which isn't at least as verbose (shader_defs.entry("KEY".into()).or_default()) ...
we can add From<bool> for ShaderDefValue so you could at least shader_defs.insert("KEY".into(), true.into()), or a default so you can shader_defs.insert("KEY".into(), default()), i guess that would help a bit.

Ok maybe I didn't fully understand the problem. Bevy seems to have a ShaderDefVal that includes type and value and name of the def. naga_oil on the other hand uses ShaderDefValue only for the type and value part, and a separate string for the name. I didn't realize that when I opened the issue. And you're saying you don't want to do like Bevy, did I get that right? If so then yes indeed there's not much to be done here due to the HashMap interface.

Right, I don’t want to make a type for name + value since I’d need to immediately convert it internally anyway.

Ok makes sense. Let's close then.


[FLINK-24096][checkpoint] Skip the complete notification for checkpoints before task startup

What is the purpose of the change
This PR fixes the issues that the the task might receive checkpoint complete notification for checkpoints snapshotted before the task get startup (like from the previous run or from the previous attempt).
Brief change log

5a710012572c8cb6c4d521228fc947d57c95fab9 reverts the previous fix which only consider the checkpoint from the previous run, but not the one from the previous attempt.
c51fa298dec3259abd4ffba2e38f3be10e2f9986 do a unified judgement at the task side to skip such notifications.

Verifying this change
This PR is verified by the added UT.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? not applicable

@flinkbot run azure

Very thanks @dawidwys for the review! I'll merge the code~


Polars: remove sort postprocessor

Close #1951

#2092  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @Shoeboxam and the rest of your teammates on  Graphite


New-DB

Description of PR

Type of change

Feature Pull Request
Bugfix Pull Request
Docs Pull Request
Fixes an issue

Thank you for making time to create a Pull Request. Could you please make sure conflicts are resolved so Travis can do its job?


HASSIO Command Line

Whiskerz007 this LXC version is way faster than the original VM version but how do you get the HASSIO Command Line now to do things like snapshots fixes, homeassistant check, etc? If the machine binds up for some reason this was area to fix all those issue.

I have an older version of the script running but I am able to access the CLI via the ssh add on in hass.io (and a different port than the ssh into the host system).  Is there a reason to update to htis version of the script or is ssh access to the cli the same?

I have made hassio-cli accessible to the main container. With the new revision of the script, you can open the console, of the container, in Proxmox and run hassio-cli at the prompt.

So as long as I can get to a core-ssh hass.io login through ssh the only thing I am missing is I can't access the cli from a console within proxmox right?

That sounds accurate to me.


When Adding scope to resource it no longer populates any data

When adding
defmodule Houser.ExAdmin.Facility do
  use ExAdmin.Register
  require ExAdmin.Register

  register_resource Houser.Facility do
    scope :with_auction, fn(q) ->
      where(q, [f], not(is_nil(f.auction_date_and_time_1)))
    end

    scope :verified, fn(q) ->
      where(q, [f], f.verified == "Yes")
    end

    sidebar "Bulk Update", only: :index do
      Phoenix.View.render(Houser.FacilityView, "bulk_update.html", %{conn: conn})
      |> Phoenix.HTML.safe_to_string
      |> raw
    end

  end
end

and when I remove it
defmodule Houser.ExAdmin.Facility do
  use ExAdmin.Register
  require ExAdmin.Register

  register_resource Houser.Facility do
    # scope :with_auction, fn(q) ->
    #   where(q, [f], not(is_nil(f.auction_date_and_time_1)))
    # end
    #
    # scope :verified, fn(q) ->
    #   where(q, [f], f.verified == "Yes")
    # end

    sidebar "Bulk Update", only: :index do
      Phoenix.View.render(Houser.FacilityView, "bulk_update.html", %{conn: conn})
      |> Phoenix.HTML.safe_to_string
      |> raw
    end

  end
end

It populates again

I'm on the Master branch

I just tested a project with current master and its working fine. I suspect you have an issue with the queries. I suggest you try some of the following:

add a default all scope scope :all, default: true and see if that returns all the records.
Try where(q, [f], f.verified == true) for your verified scope
Try logging the the query returned by the scope block and then run the query manually to see if it returns records. Something like:

scope :with_auction, fn(q) ->
  query = where(q, [f], not(is_nil(f.auction_date_and_time_1)))
  IO.puts "with_auction query: #{inspect query}"
  query
end

Not sure why but when I added scope :all, default: true it started working.


Inner join, specify column

Is it possible to specify the column to join on?
#[derive(Queryable, Identifiable, Insertable, new, Debug)]
#[primary_key(pub_id, sub_id)]
#[table_name="follows"]
pub struct Follow {
	pub pub_id: i64,
	pub sub_id: i64,
}

I want to find all followers of a user, the sql query would be:
select users.* from users join follows on id = sub_id where pub_id = $1

It would be useful to have a way to specify which column to join on since I want to join on different columns in different cases, e.g. when getting the followees:
select users.* from users join follows on id = pub_id where sub_id = $1

Also, sometimes there are other constraints than column equality in the join condition.
How can I express these two queries with diesel currently?

We don't currently support representing a join to the same two tables in different ways. Ultimately the plan for this is to allow giving a table an explicit alias, which you can reference separately. This gets into one of the fundamental impedence mismatches we have where you specify a join between to tables by annotating a random struct, not the table itself (because the table is likely not part of your code).
Ultimately this is something that is not slated for 1.0, and very low on the priority list. What is on the priority list for 1.0 is to provide a better untyped raw SQL escape hatch for the "we don't support this" cases, so the answer to how to do this with Diesel will likely point you towards that API when added.

Also, sometimes there are other constraints than column equality in the join condition.

Yes, ultimately I want the join_to! macro to be more robust. Conditions other than equality aren't likely to be supported by the associations abstraction though.
While I do think this is something to support this eventually, since it's far past 1.0 and I don't have a concrete API in mind yet, I'm closing this as non-actionable.

I understand.
So currently the only way to do it is like this?
let query = sql(&format!("select users.* from users join follows on id = sub_id where pub_id = {}", self.id));
query.get_results::<User>(&*database::connection().get().unwrap()).map_err(|e| e.into())

For the time being, yes -- only one of the two joins can be represented by the query builder

Ok, but I get an error:

error[E0282]: unable to infer enough type information about SE

(It underlines get_results.)
When I write it like sql::<User>(..), I get:

error[E0277]: the trait bound (i64, std::string::String, std::string::String, std::string::String, chrono::NaiveDateTime, chrono::NaiveDateTime, std::option::Option<i64>): diesel::types::FromSqlRow<models::user::User, _> is not satisfied

You need to specify the SQL type of the query when using the sql function.

@sgrif Isn't that what I'm doing with sql::<User>(..)?

User is not a SQL type. You probably want users::SqlType

Thanks a lot, it works!


Change default IPv6 CIDR to a real private IPv6 address

This change is

test-me-please

test-me-please

test-me-please

We can't change the default IPv6 cluster prefix without breaking upgrade compatibility as endpoints can't be restored as the IP of old endpoints would not fall into the new CIDR range.


exchangeCodeForSession bad return type

Bug report

[x] I confirm this is a bug with Supabase, not with my own application.
[x] I confirm I have searched the Docs, GitHub Discussions, and Discord.

Describe the bug
exchangeCodeForSession returns an AuthResponse which is defined like this:
{
    data: {
        user: User | null;
        session: Session | null;
    };
    error: null;
} | {
    data: {
        user: null;
        session: null;
    };
    error: AuthError;
}

That means a value like this is possible, with no data and no error:
data: { user: null, session: null },
error: null

Expected behavior
If the login is successful, I would expect the user/session to be returned. If there was an error, it should return an error.
System information
N/A

H


[VCM] do not trigger cascade of un/mute changes

Summary of the Pull Request
After https://github.com/microsoft/PowerToys/pull/28658, I've started experiencing issues when using "Startup action: Mute". Specifically, I have 2 physical mic devices and NVIDIA Broadcast device, and NVIDIA device wasn't unmuting in 90% cases after initial mute.
After debugging, it turns out that the callbacks for VolumeNotifier::OnNotify are in a race with setMuteChangedCallback to make the NVIDIA device muted, since getMicrophoneMuteState was returing false for it, because we haven't unumted the tracked physical device.
This PR removes the new callback logic.

PR Checklist

[ ] Closes: #xxx
[ ] Communication: I've discussed this with core contributors already. If work hasn't been agreed, this work might be rejected
[ ] Tests: Added/updated and all pass
[ ] Localization: All end user facing strings can be localized
[ ] Dev docs: Added/updated
[ ] New binaries: Added on the required places

[ ] JSON for signing for new binaries
[ ] WXS for installer for new binaries and localization folder
[ ] YML for CI pipeline for new test projects
[ ] YML for signed pipeline

[ ] Documentation updated: If checked, please file a pull request on our docs repo and link it here: #xxx

Detailed Description of the Pull Request / Additional comments

Validation Steps Performed

use "Mute" startup action and toggle mute all mics back and forth, verify that all mics stay in the same state.
use "Unmute" startup action and verify it works as wellA

@yuyoyuppe , This PR needs a merge from main to fix the XAML styler error in CI

Yes this logic can safely remove and it should. I added this logic for avoid case:
Device muted will unmute if disable then enable in Control Panel.
It happen if other programs handle microphone like remote desktop,..
Example:
Both physic microphone + voicemeeter virtual device (default device, trackedInUI) muted
-> Other computer Remote desktop connection -> will unmute physic devices.
-> Physic: unmuted, Voicemeeter: still muted.
But later, I think should not force to avoid conflict, and "Windows unmute when disable device" problem not important because (default device, trackedInUI) still muted👍

@quyenvsp thanks for the explanation. I think that issue deserves a dedicated solution.


Make the update availability notification clearer

Most programs just pop up a message box, but I'm assuming you didn't go that route intentionally.
However I think the current notification at the bottom right is too easy to miss.
I think a message box only at the first sight of an update (or at most one message box per new version) would make sense, mentioning that if you don't want to update now you can do so via the bottom-right update button (probably have a small screenshot of it in the message box to clarify).

I dislike "in your face" update notifications. VS is doing a great job there, and I took a cue from it. Maybe I can add some text that would make it more apparent an update is available.

I feel that it's much more noticeable in VS:

The button is at the top
The button is bigger
The button is highlighted

Adding some text would also be a good idea, possibly a number indicating the number of new versions released since the last update (something like Bootstrap's badges).

Maybe moving it to the top and highlighting it would be better. I'll consider it.
BTW, there was actually a suggestion for extensibility (#24) but that's very low on my priority list right now.

What do you think?

Much better for sure, but I need to see how noticeable it is when maximized. Will probably be even more noticeable at the top.

Let's try the bottom first. Putting it on the top would require either: pushing everything down - or - drawing in the non-client area (which can be quite a hassle).


Add file buffer feature for fluentd

I would like a file based buffering feature to be added to splunk-connect.
It is necessary to reduce the risk of loosing important loggings, for example if a node crashes.
There is a "pos" feature on reading logs, that sets the position of already read lines. But I am not convinced, that this is a sufficient solution. There might be a chance of loosing logs when a node crashes from the time reading the file (and setting the pos), to the time sending the event to Splunk.

Have you considered using https://github.com/splunk/splunk-connect-for-kubernetes/blob/develop/helm-chart/splunk-kubernetes-logging/values.yaml#L268-L276
I think that will be sufficient for your use case. Let us know otherwise, Thanks.

Hi @chaitanyaphalak
Perfect, thank you! I was looking at the manifests, its static memory buffer there.


Documentation enhancement

You may (in case my pull requests are bothering you) just leave this pull request open for a while.

you can maybe group it with some other commits...

There are no other commits (yet?), and I'm not sure whether I will find more. That's why I'm doing this pull request now, instead of "later when I'm done".

So let's leave it open for some time just in case you find other typos. Thanks!

That's a good idea :)

(Also, see my mail; unrelated and long)

I did not know about that, please fill a ticket on trac.

In case anyone else is reading this: See https://svn.boost.org/trac/boost/ticket/11582


Linq Navigation join with nullable FK loads ALL(reundant) columns from second table.

Only one column from second table is specified for join, but when query is analysed from SqlProfiler it selects all columns.
Steps to reproduce
Main Table
User
	Guid UserId (PK)
	string Email
	string FullName
	Guid? PartyId (FK nullable)

Join Table
Party
	Guid PartyId (PK)
	string Name
	string Desc
	string SomeInfo

Linq:
var users = userRepos.Query().Where(a => !a.Deleted).OrderBy(u => u.UserId).Skip(0).Take(10);
var query = from u in users
            select new UserModel
	    {
	        UserId =  = u.UserId,
	        Email = u.Email,
		FullName = u.FullName,
		PartyId = u.PartyId,
		PartyName = u.Party.Name,
	    };

Profiler:
SELECT [dto.Party].[PartyId], [dto.Party].[Name], [dto.Party].[Desc], [dto.Party].[SomeInfo],
[t].[UserId], [t].[FullName], [t].[Email], [t].[PartyId]
FROM (
    SELECT [u0].*
    FROM [dbo].[User] AS [u0]
    WHERE [u0].[Deleted] = 0
    ORDER BY [u0].[UserId]
    OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY
) AS [t]
LEFT JOIN [fin].[Party] AS [dto.Party] ON [t].[PartyId] = [dto.Party].[PartyId]
ORDER BY [t].[PartyId]

Columns Desc and SomeInfo should NOT be in query.
This showcase was simplified just to emphasis the issues.
In real scenario Party table has much more columns and some tables have more then one nullable FK, so I don't want all those column loaded from DB when I do not need them.
I am actually using AutoMapper instead of manually mapping these Properties but generated query is same in both cases. Showcase is with manual mapping just to point that it's not because of AM.
Further technical details
EF Core version: 1.1.1
Database Provider: Microsoft.EntityFrameworkCore.SqlServer
Operating system: Windows 10
IDE: Visual Studio 2017

@maumar to find the dupe.

dupe of https://github.com/aspnet/EntityFramework/issues/6647

So it is already fixed, great.
Thx for quick response.

@borisdj on our current bits the following SQL is generated for this scenario:
SELECT [a].[UserId], [a].[Email], [a].[FullName], [a].[PartyId], [a.Party].[Name]
FROM [Users] AS [a]
LEFT JOIN [Parties] AS [a.Party] ON [a].[PartyId] = [a.Party].[PartyId]
WHERE [a].[Deleted] = 0
ORDER BY [a].[UserId]
OFFSET @__p_0 ROWS FETCH NEXT @__p_1 ROWS ONLY

That SQL looks much better.


Get list of news from azure

We need to display the news articles we have in Azure (published by AEM) in the web. How do we get a list of this without knowing the URLs beforehand?

Related to #648

This is no longer relevant


Dando erro

[Enter feedback here]
Erroo

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

ID: 5e9e26ca-6ca8-4f7f-b033-2398576369af
Version Independent ID: b5b50e01-baf9-c2fe-7a1e-6f04a276e1fc
Content: Get started with the Android client
Content Source: WindowsServerDocs/remote/remote-desktop-services/clients/remote-desktop-android.md
Product: windows-server
Technology: remote-desktop-services
GitHub Login: @Heidilohr
Microsoft Alias: helohr

#assign:xelu86

Hey @Viniciustt,
Thanks again for contacting Microsoft. We value your feedback.
As we understand it, you're describing an issue with the product compared to an issue with the documentation. GitHub isn't quite the right location or channel if searching for technical support, deeper specifics of the product or feature requests as it is completely outside our scope. If there are any issues within the content itself, such as incorrect code, verbiage, etc., please let us know.
As the error you're receiving is quite specific, we recommend that you engage with the product community or open a ticket with Microsoft Support.
Looking into our support forums may provide details as to why you may be receiving this error. Please see this search on RDP Client 0x204 error.
Additional support forums listed below:

TechNet: https://social.technet.microsoft.com/Forums/en-US/home
MSDN: https://social.msdn.microsoft.com/Forums/en-US/home
Microsoft Community: https://answers.microsoft.com/

Hopefully one of the community experts may be able to better assist. We will now be closing this thread. Thank you and have a most pleasant day.
#please-close


Log-rank test survival time and relapse or no-relapse

In the file data_preprocessing/6_survival_primitive_vs_metastasis.py we perform the following log-rank test.

Null Hypothesis (H₀): There is no difference in survival distributions between the groups (e.g., subjects with relapse vs. without relapse).
Alternative Hypothesis (H₁): There is a significant difference in survival distributions between the groups.

Two experiements were done :

First experiment: if the survival time is NaN then we set it equal to +∞ as we consider that the persone dies after the study
Second experiment: if the survival time is NaN then we remove the person from the study

The results of the experiments are very different. Here is the output of the code:
First Strategy: if 'delai_fin_DC' is nan then death occurs at time = + infinite
Log-Rank Test Statistic: 8.211735435498051
Log-Rank Test p-value: 0.004162032598667009

Second Strategy: remove the patients for which 'delai_fin_DC' is nan
Log-Rank Test Statistic: 1.2871655808759024
Log-Rank Test p-value: 0.2565709557686867

To Do:

[ ] Plot the Kaplan Meyer survival plot


May you please provide a Jupyter Notebook

Hey! This is a great repo and thanks for your work @jankrepl! Can you please provide a jupyter notebook which uses the module to optimize a portfolio?
Thanks!

Thank you for you interest @vedantog !
You can take any example from here https://deepdow.readthedocs.io/en/latest/auto_examples/index.html and scroll all the way down and there should be a Download Jupyter notebook ... button. See below a screenshot

Thanks for the swift response @jankrepl! But is it possible to provide a notebook in which after providing a list of stocks, it uses the library to create a portfolio? As I am new to programming....
Thanks!


Karavan-Designer Build Issues

I am getting the source code Issues while building the karavan-desinger source in my local machine.

please help me out from this build issues?????

duplicate of https://github.com/apache/camel-karavan/discussions/1198


fix(pulse_secure): use rfc5424 template for pulse secure

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

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


RANGER-2856: A policy should be deleted if it has no policyItems

Condition: A policy contains only one policyItem and the policyItem only sets one user and no groups.
Action: Delete the user in the policyItem using API: 'http://ip:6080/service/xusers/users/{id}?forceDelete=true'
Result: The policy still exists, but it has no policyItems. A policy with no policyItems is completely meaningless and it should be deleted.

Patch committed：https://github.com/apache/ranger/commit/400beaa7604e4c83d051dc6e83b8bc109e5d8c53


fix: remove lambda abstraction of Nat.rec_zero and Nat.rec_add_one

theorem rec_zero {C : ℕ → Sort u} (h0 : C 0) (h : ∀ n, C n → C (n + 1)) :
    (Nat.rec h0 h : ∀ n, C n) 0 = h0 :=
  rfl

The above theorem is elaborated as follow:
theorem rec_zero {C : ℕ → Sort u} (h0 : C 0) (h : ∀ n, C n → C (n + 1)) :
    (fun n => Nat.rec h0 h n) 0 = h0 :=
  rfl

This form of the theorem isn't generic. This PR fixes this problem.

Could you add a porting note, explaining why this change is necessary relative to mathlib3?

bors d+

bors r+


KMS + Ledger    path: ~/.tmkms/tmkms.toml

i created tmkms   &    i got a path:  ./target/release/tmkms
cosmos documentation shows the path: ~/.tmkms/tmkms.toml
https://hub.cosmos.network/docs/validators/kms/kms_ledger.html#kms-configuration
I cannot create a configuration file in this directory.
I create a configuration file to any other place, and try to start it, but tmkms does not start (there is no such file or directory)
what's wrong with dependencies and installation paths
I tried different ways to create a tmkms.toml file, this one as an example.

the problem is that I cannot enter the directory ~/.tmkms/  which is specified in the documentation (executable file) and create a file there  tmkms.toml
I can’t ask for a riot or a telegram because nobody answers there!  nobody knows anything

It is possible that some steps in the tutorial might be out of date, but given that different distributions, permissions etc. will vary, you should consider these steps as a high-level guideline instead of a step by step recipe. They are intended to provide a general description of the most important and critical steps without being prescriptive. In general, we expect that people given this information will be able to fill the gaps and do a bit of research. Running a validator requires not just an initial setup but being able to follow good practices, secure, maintain and upgrade your infrastructure, etc. You have to keep in mind that adequate DevOps skills are to be expected.
We have a great community and many are likely to help you when they find some free time! Still, I would say that it is important to adopt a critical position whenever you receive help online. A misconfiguration can result in significant security risks and it is easy to imagine skilled attackers that could suggest you steps that may make your infrastructure vulnerable! Always do your own research, investigate how the tools actually work and try to understand the implications of the configuration parameters.
With respect to the issue you describe:

The configuration file can be stored almost anywhere in the filesystem and you can indicate the KMS where to find it by using -c.
With respect to there is no such file or directory it is very likely that you are trying to execute the binary but it is not in the path. Keep in mind that if you are in the same directory as the binary, you should be using ./

that's exactly what i decided.


Send logs to Cloudwatch logs

See https://github.com/mdsol/logspout-cloudwatch
Right now logspout is useless because the subscription it tries to send to is lapsed.
We could also remove logspout entirely and rely on Docker's ability to send logs directly to Cloudwatch, see:

https://docs.docker.com/config/containers/logging/awslogs/
https://logz.io/blog/logging-docker-containers-aws-cloudwatch/
https://aws.amazon.com/premiumsupport/knowledge-center/cloudwatch-docker-container-logs-proxy/

In order to do this, I think we are going to have to move the Freezing Saddles server out of Lightsail to EC2. Which also means we are going to have to move the PostgreSQL server from Lightsail to RDS. Ugh.
So the first thing to do is to move the PostgreSQL server, and then move the Lightsail server.
AWS has an article on migrating RDS here: https://aws.amazon.com/blogs/compute/amazon-lightsail-database-tips-and-tricks/
I already did the first step, enabling VPC peering for LightSail.

I set up new private subnets in all 6 availability zones in us-east-1, then added a new RDS DB subnet group that includes all of them called unmanaged-fs-db-sg that has all 6 subnets in it. I then created an AWS RDS Aurora MySQL 5.6 compatible database with t3.small instances called unmanged-fs-db-sg that has an AWS-created security group called unmanaged-fs-rds-vpc-sg.
I created another VPC security grou pcalled unmanaged-fs-ec2-sg and had it allow SSH and HTTP and HTTPS from the world, and then modified the unmanaged-fs-rds-vpc-sg to allow access both from the EC2 SG and from <IP_ADDRESS>/16, the Lightsail network. This should allow us to connect to the new RDS server from the Lightsail instance.

I created a new IAM policy and role to allow CloudWatch logs write access, and allocated a new elastic IP address. I fixed up Route53 to point to the new IP address <IP_ADDRESS>, then I created the EC2 instance, put it a public subnet in us-east-1a, and associated the elastic IP address. It started clean and allowed me to login, and then I started the docker-compose services again (except for freezing-sync which I immediately stopped).

Now we are ready to send logs to CloudWatch - we just have to configure either logspout or Docker itself to do it.

I configured Logspout to send logs to CloudWatch logs.


jellyfish-wallet-classic single keypair provider

What would you like to be added:
A single keypair provider similar to the mock here:
https://github.com/DeFiCh/jellyfish/blob/main/packages/jellyfish-wallet/__tests__/node.mock.ts
Why is this needed:
Useful for light implementations and e2e tests

/area jellyfish-wallet
/assign @monstrobishi since you need it
/triage accepted
/priority important-soon


[7.x] Check if an array lock exists before releasing it

It just fixes the thing where we would be thrown an Undefined index {index} exception when releasing a non-existing array lock.
Reference: https://github.com/laravel/framework/pull/30253#issuecomment-593665419
Thanks to @timacdonald for adding the ArrayLock and the test for this PR!

Heya, thanks for the PR! Can you send this to 6.x instead?

Done: https://github.com/laravel/framework/pull/31795


Add support for audio description

I believe that this issue will be resolved by PR #125
Here's the line: https://github.com/paypal/accessible-html5-video-player/pull/125/files#diff-eaf9c01c6072cc88add5de8ec378c233R386


Build failure: radicle-upstream

Steps To Reproduce
Steps to reproduce the behavior:

build radicle-upstream

Build log
https://hydra.nixos.org/build/230798461
setting interpreter of /nix/store/356czrh003r1h1dija9cpxq3yvs3l47i-git-remote-rad-0.3.0/bin/git-remote-rad
searching for dependencies of /nix/store/356czrh003r1h1dija9cpxq3yvs3l47i-git-remote-rad-0.3.0/bin/git-remote-rad
    libgcc_s.so.1 -> not found!
auto-patchelf: 1 dependencies could not be satisfied
error: auto-patchelf could not satisfy dependency libgcc_s.so.1 wanted by /nix/store/356czrh003r1h1dija9cpxq3yvs3l47i-git-remote-rad-0.3.0/bin/git-remote-rad
auto-patchelf failed to find all the required dependencies.
Add the missing dependencies to --libs or use `--ignore-missing="foo.so.1 bar.so etc.so"`.
/nix/store/rk3g4mxrs84bv1vanqnzpdkhm73ksr0z-stdenv-linux/setup: line 87: pop_var_context: head of shell_variables not a function context
/nix/store/rk3g4mxrs84bv1vanqnzpdkhm73ksr0z-stdenv-linux/setup: line 1459: pop_var_context: head of shell_variables not a function context
/nix/store/rk3g4mxrs84bv1vanqnzpdkhm73ksr0z-stdenv-linux/setup: line 1596: pop_var_context: head of shell_variables not a function context

Additional context
Encountered build failure when ran unrelated nixpkgs-review on a minor change at https://github.com/NixOS/nixpkgs/pull/250500
The bisect is not very precise as most commits don't even evaluate:
$ git bisect skip
There are only 'skip'ped commits left to test.
The first bad commit could be any of:
86ca0faff759bb28901079e643c55c3f6a4ea47d
d7fe0a5548413fedb2c23d8b7d9864c99350e226
c6bd37a69160e7e436d9b8fba1ff12d0678ccf1a
fed2300bea5e0451c6fe55535f0a8f471a5d8c35
7553d0fe29801938bcb280bb324b579ef9016aea
96588eb3de55931e8b92a4f78f44342598f7ed5c
5f57c2e0f97a83bf5691ac3a29da6ef9b44535c4
Notify maintainers
@d-xo

https://github.com/NixOS/nixpkgs/issues/225963

removed in #309050


TlsConnector throws an error: Failure(Error { code: -9836, message: "bad protocol version" })

I run the code in the examples folder with different domain
extern crate native_tls;

use native_tls::TlsConnector;
use std::io::{Read, Write};
use std::net::TcpStream;

fn main() {
    let connector = TlsConnector::new().unwrap();

    let stream = TcpStream::connect("token.safebrowsing.apple:443").expect("tcp connect");
    let mut stream = connector.connect("token.safebrowsing.apple", stream).expect("tls connect");

    stream.write_all(b"GET /api/v1/google.json HTTP/1.1\r\n\r\n").expect("write_all");
    let mut res = vec![];
    stream.read_to_end(&mut res).unwrap();
    println!("{}", String::from_utf8_lossy(&res));
}

Output:
$ cargo run
   Compiling native-tls-test v0.1.0 (/Users/khanhnt/Work/test/native-tls-test)
    Finished dev [unoptimized + debuginfo] target(s) in 0.15s
     Running `target/debug/native-tls-test`
thread 'main' panicked at src/main.rs:11:76:
tls connect: Failure(Error { code: -9836, message: "bad protocol version" })
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Meanwhile, I can use a browser to open https://token.safebrowsing.apple/api/v1/google.json successfully

Hmm, this bug only occurs in MacOS

@khanhnt2 how did you solve this?

Also interested in


refactor(api): remove labware migration prints

This removes the labware database migration statements that are printed every time the robot module is imported, which are confusing for end users, in favour of log.info messages. It leaves two print statements intact that are called when migration actually happens so that if the interface does not lock up without any information on progress. Changes welcome.
Largely fixes #5406.
risk assessment
Low - no functional changes. These messages seem to date from balena.

They're actually only required for version 1 labware, which is only usable in protocol API v1, and is heavily discouraged from use now. I'd kept them around just in case someone was having issues that needed to be debugged. But it's also incredibly annoying, and I'd be glad to be rid of it.

Thank you for the pull!


How can I configure multiple Bitbucket Repos in a single page ?

Hello,
I'm trying to configure multiple BB Repos in a single page? When I add new rows, all results are replicating on each one.
I'm trying to fulfill an entire template.  Like this:

Multirow and multicolumn.
Thanks in advance.

You can't. The design of a dashboard is 1:1:1. 1 Component, 1 Repository, 1 Jenkins Job. Technically the model could support it but I don't think that is wanted. It would cause complications for the pipeline and team dashboards.

Thanks for the response. I've seen someone wrote about playing with the rows in a single page could do the trick.

Technically you can do it. But then you have just created a dashboard for showing only Github repo's.

That's exactly what I want. I think template should support any kind of widget organization

'Multiple widgets of same type' will be available soon.

@nitin1706  hi, Nitin  is the 'Multiple widgets of same type'  feature can be supported on the latest version? When is the entry for the feature? thanks a lot!

Hi I am trying to do the same display multiple repos in one dashboard is there an already working solution for the same ?


Fix broken link in Gateway API v1.0 blog

As requested in issue #43761 udpated the blog article to link to 1.0.0 not 0.1.0
This will fix #43761

/label tide/merge-method-squash

Thanks for fixing this @steve-hardman!
/lgtm


Manager Ready: Admins Should Be Able to View Applicants, Applications, and Save Both as PDFs

Description
Admins should have the ability to view applicant profiles (the same view hiring managers have), unique applications, and should be able to save both of these as PDF documents through the browsers print function.
Criteria

[x] Admins can view the manager version of an applicant's profile.
[x] Admins can view the manager version of an application.
[x] Admins can save both views as PDFs through native print functionality.
[ ] This task requires a unit test.

@joshdrink from what I can tell locally, this functionality is already in place. Closing.


Metaclass conflict with autocomplete-light 2.3.3 and six 1.11

When running autcomplete-light 2.3.3 with the latest version of six @ 1.11, you will get the following error.
TypeError: Error when calling the metaclass bases
    metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases

See https://github.com/benjaminp/six/issues/210. Reading through the comments, it sounds like metaclass should not be specified in combination with six.with_metaclass
To work around the issue, we are pinning six to 1.10

Reproduced on both Django 1.9 and 1.11

+1

I am also experiencing this issue

I also have this issue with Django 1.7, six 1.10 and autocomplete 2.3.3

Please, stop "it dosen't work for me neither", at this point the only thing you should care about is are you going to contribute this 1 line deletion patch to fix the issue.

@jpic Point taken —I think such comments have been made in good faith, as knowing with which versions of Django the issue is appearing could be useful information for a fix. However, based on recent comments it seems likely that the issue exists for all Django versions which autocomplete-light supports.

fixed in 2.3.4 please feel free to make a pull request next time this is open bar repository

@jpic great news, thanks! If I'd have known this was as easy as updating a dependency, I'd have done so myself, but am not familiar enough with the project.

This doesn’t actually fix the issue, it just pins six to the version that doesn’t warn you about the problem.  Is there expecatation that the 2.x.x branch would keep working with newer packages or has it reached end of life at this point? It is described a stable but I don’t know if that means bugs like this should get fixed. Happy to attempt a PR if this version is still maintained.

I still have v2 in two products, but we can schedule it to end of life because we have a DRY pattern for v3 since #995, we just need to expand it a bit more to all widgets.
Meanwhile, 2.3.6 release fixes the issue for me.

I’m still running v2 in a couple places as well so this is good news for me as well.
2.3.6 does indeed address the underlying problem with this issue. Thanks for fixing that.


winget search with empty query results in a 'No packages found' error for msstore source

Brief description of your issue
According to docs https://learn.microsoft.com/en-us/windows/package-manager/winget/search#show-all
using winget search "" --source msstore should return list of all available to install packages from msstore source, but it returns No package found matching input criteria.
It works only when application name is provided, as in example in docs winget search “Visual Studio Code” -s msstore
Without --source param it returns the same list of apps as with winget search "" --source winget
Steps to reproduce
run winget search "" --source msstore
Expected behavior
winget search -q ""  should return all packages from all sources
winget search -q "" -s msstore should return all packages from msstore source
Actual behavior
winget search -q ""  returns only winget apps
winget search -q "" -s msstore returns no package found
Environment
Windows Package Manager v1.4.10173
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.19045.2546
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.19.10173.0

Logs: %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir

User Settings: %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json

Links
---------------------------------------------------------------------------
Privacy Statement   https://aka.ms/winget-privacy
License Agreement   https://aka.ms/winget-license
Third Party Notices https://aka.ms/winget-3rdPartyNotice
Homepage            https://aka.ms/winget
Windows Store Terms https://www.microsoft.com/en-us/storedocs/terms-of-sale

We need to update the documentation.
Any REST source may restrict the number of results they provide.
The Microsoft Store REST endpoint returns a maximum number of results determined by their implementation.


When will bedrock-v407 codec be published to NukkitX Maven repo?

I see there is a feature branch for the 1.16 update, with protocol v407 committed. I also see the Jenkins builds are "passing": https://ci.nukkitx.com/job/NukkitX/job/Protocol/job/feature%252F1.16/
Is there any more testing needed before these change can be published to the NukkitX Maven repo?

I heard there is a problem about block palettes.

Probably just manually compile it first for your own dev or if you're desperate I have it in my maven repo for now.
        <!-- Bundabrg's Repo -->
        <repository>
            <id>bundabrg-repo</id>
            <url>https://repo.worldguard.com.au/repository/maven-public</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>

It has been deployed to the snapshot repo the past couple of days.


Add store_history feature for video panes

The store_history feature in #393 is a great feature. Logging RL training often requires storying episode recordings, too. These videos can clutter up the dashboard. Would it be possible to add store_histrory for videos, too?

Storing video history could also work - I'd be concerned about the memory cost associated with doing it, but it wouldn't be difficult to implement the support. #393 will be in following #395 being resolved, so adding it to videos would come sometime after that.

Right now I find that I often just log the videos separately. I'm not very familiar with the visdom implementation--would store_history be more expensive than what I do right now?
Another solution for this use-case would be to programmatically tile the videos from python. Like in the example here. This might already be possible, I'm not sure!
You might prefer this solution because it makes the memory cost a little more explicit.

It wouldn't be more expensive, but it introduces important design decisions that could be hard to implement (what happens when you scroll through the history while playing a video, is it expected that all of the videos line up?
Tiling from the visdom python client should already be theoretically possible if you provide the height and width options, as the rest would fill in.

I think that I see what you mean--do the videos line up, both temporally and in terms of spatial size on screen. In terms of spatial size, you face the same design decision with images.
Tiling is possible, as you suggest--but right now it requires a dedicated environment. So to tile videos during a hyperparameter search, I'd need to have 2 environments per setting. One for videos, and one for other results. It's doable but a little inconvenient.
The simplest implementation is what I had in mind. I think that is sufficient for people doing RL. Storing time might be important if you're working with video (e.g. visual grounding or action recognition). But the simple case should work for 95% of people (since right now the # of people doing RL > # doing video)


TooManyRequestsException while syncing AWS APIGateway Rest APIs (retry_mode doesn't help)

Hello everyone,
Cartography 56.0, Centos 7 on AWS EC2, t3.xlarge type, Neo4j 3.5.
Cartography was able to get information from several AWS accounts, but one of the accounts doesn't work with Cartography.
Logs:
INFO:cartography.intel.aws.apigateway:Syncing AWS APIGateway Rest APIs for region 'us-east-1' in account '459955752294'.
ERROR:cartography.sync:Unhandled exception during sync stage 'aws'
Traceback (most recent call last):
File "/home/centos/.local/lib/python3.8/site-packages/cartography/sync.py", line 74, in run
stage_func(neo4j_session, config)
File "/home/centos/.local/lib/python3.8/site-packages/cartography/util.py", line 115, in timed
return method(*args, **kwargs)
File "/home/centos/.local/lib/python3.8/site-packages/cartography/intel/aws/init.py", line 220, in start_aws_ingestion
_sync_multiple_accounts(
File "/home/centos/.local/lib/python3.8/site-packages/cartography/intel/aws/init.py", line 157, in _sync_multiple_accounts
_sync_one_account(
File "/home/centos/.local/lib/python3.8/site-packages/cartography/intel/aws/init.py", line 60, in _sync_one_account
RESOURCE_FUNCTIONSfunc_name
File "/home/centos/.local/lib/python3.8/site-packages/cartography/util.py", line 115, in timed
return method(*args, **kwargs)
File "/home/centos/.local/lib/python3.8/site-packages/cartography/intel/aws/apigateway.py", line 376, in sync
sync_apigateway_rest_apis(neo4j_session, boto3_session, region, current_aws_account_id, update_tag)
File "/home/centos/.local/lib/python3.8/site-packages/cartography/util.py", line 115, in timed
return method(*args, **kwargs)
File "/home/centos/.local/lib/python3.8/site-packages/cartography/intel/aws/apigateway.py", line 366, in sync_apigateway_rest_apis
load_rest_api_details(neo4j_session, stages_certificate_resources, current_aws_account_id, aws_update_tag)
File "/home/centos/.local/lib/python3.8/site-packages/cartography/util.py", line 115, in timed
return method(*args, **kwargs)
File "/home/centos/.local/lib/python3.8/site-packages/cartography/intel/aws/apigateway.py", line 296, in load_rest_api_details
for api_id, stage, certificate, resource, policy in stages_certificate_resources:
File "/home/centos/.local/lib/python3.8/site-packages/cartography/intel/aws/apigateway.py", line 46, in get_rest_api_details
resources = get_rest_api_resources(api, client)
File "/home/centos/.local/lib/python3.8/site-packages/cartography/util.py", line 115, in timed
return method(*args, **kwargs)
File "/home/centos/.local/lib/python3.8/site-packages/cartography/intel/aws/apigateway.py", line 93, in get_rest_api_resources
for page in response_iterator:
File "/home/centos/.local/lib/python3.8/site-packages/botocore/paginate.py", line 253, in iter
response = self._make_request(current_kwargs)
File "/home/centos/.local/lib/python3.8/site-packages/botocore/paginate.py", line 332, in _make_request
return self._method(**current_kwargs)
File "/home/centos/.local/lib/python3.8/site-packages/botocore/client.py", line 415, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/home/centos/.local/lib/python3.8/site-packages/botocore/client.py", line 745, in make_api_call
raise error_class(parsed_response, operation_name)
botocore.errorfactory.TooManyRequestsException: An error occurred (TooManyRequestsException) when calling the GetResources operation: Too Many Requests
Added the following settings in .aws/config and it didn't help:
[profilename]
region = ***
output = json
retry_mode = standard
max_attempts = 10
Tried to get AWS APIGateway Rest APIs using AWS Cli and received several items as expected:
aws apigateway get-rest-apis --profile profilename --region us-east-1
{
"items": [
{
"apiKeySource": "HEADER",....
Could you please take a look?

You can try to alter the retry mode in your aws config file. Let us know if that helps. We may want to build this into cartography.
https://boto3.amazonaws.com/v1/documentation/api/latest/guide/retries.html

@ramonpetgrave64, I have added retry_mode = standard and max_attempts = 10 to my .aws/config, but it still doesn't work.
Maybe there are other ways?

Hi @ramonpetgrave64, the same error with retry_mode = adaptive.

max_attempts = 200
retry_mode = adaptive
seem to eliminate the issue in my case

@krisek, no it doesn't work for me, not 200, not 10000, as I wrote above


[Patch] Remove ClickToCallPhoneNumber and AttachmentLink from rules

Description of Change

ClickToCallPhoneNumber and AttachmentLink have some additional functionality that the app team would like to keep. They've updated them internally to use the new Link component but would like to retain this component. This PR removes ClickToCallPhoneNumber. and AttachmentLink from our linting rules.
We may decide to add this helper functionality to our Link component in the future. Discovery ticket: #315
Testing Packages

N/A
Screenshots/Video

N/A
Testing

N/A
PR Checklist
Code reviewer validation:

General

[x] PR has changelog label applied if it's to be included in the changelog
[x] Acceptance criteria:

All satisfied or
Documented reason for not being performed or
Split to separate ticket and ticket is linked by relevant AC(s)

[x] Above PR sections adequately filled out
[x] If any breaking changes, in accordance with the pre-1.0.0 versioning guidelines: a CU ticket has been created for the VA Mobile App detailing necessary adjustments with the package version that will be published by this ticket

Code

[x] Tests are included if appropriate (or split to separate ticket)
[x] New functions have proper TSDoc annotations

Publish

If changes warrant a new version per the versioning guidelines and the PR is approved and ready to merge:

[ ] Merge main into branch
[ ] Merge branch to main
[ ] Verify that Check Component Integrations workflow ran successfully
[ ] Publish new version after merging

Removed AttachmentLink as well and updated connected and discovery tickets.


Unable to print number to the image

Hi there,
thnx for your guys great work!
It has been installed on my MIB2Std, and I can export those mcf skin file.
and this function seems great if it can tag the image then we are able to clear know which image is using on the place.
Can you help to investigate on this issue and what happened for me. Missing library?
it's running on MacOS 10.15.7
python3 extract-mcf.py  ../dump/skins/skin5/images.mcf   ./skin/skin5/
Do you want to print the image number on each image(y/n)?: y
size of TOC: 40016
data start: 40072
number of files: 2501
Traceback (most recent call last):
File "extract-mcf.py", line 159, in
draw.text((width / 2, height / 2), "%d" % image_id, 255, ImageFont.truetype("cour.ttf", 14))
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/PIL/ImageFont.py", line 655, in truetype
return freetype(font)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/PIL/ImageFont.py", line 652, in freetype
return FreeTypeFont(font, size, index, encoding, layout_engine)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/PIL/ImageFont.py", line 193, in init
self.font = core.getfont(
OSError: cannot open resource

Hmm don't know for sure could be you missing the font it wants to use... this script comes from the MHI Toolbox. For me on Windows it works without problems.
@jilleb you see something in here what can couse the problem?

Hi
it's missing font tty file,  Seems macOS doesn't have the Font that coded inside your script, I just simply replace another tty file. it worked fine,  anyway, thnx for your comments and support


Powershell not accepting Ctrl+R for command history search

The powershell is not accepting anymore the Ctrl+R shortcut to show the command history search.

Your Windows build number:  Microsoft Windows 10.0.17763.253
What you're doing and what's happening: (Copy & paste specific commands and their output, or include screen shots)

Usually in VSCode integrated terminal or directly in the Powershell I press Ctrl+R to get the fuzzy search over previously typed commands. But this time it writes ^R

What's wrong / what should be happening instead:

The expected behavior is to present the fuzzy search prompt, like in the screen below

Additional information

The gif of the failure is taken on a Windows 10 (10.0.17763.253) installation with Italian localization, while the expected behavior was taken on  a Windows 10 (10.0.17763.253) installation with English localization.
I tried to date back when the wrong behavior first appeared, and my conclusion was after the January patch tuesday, when I finally let install the Windows 1809 feature update along with KB4480116, KB4480979 and KB4480056.
On the English localized laptop the 1809 upgrade was done in December and has the additional KB4468550 update installed, which was not presented on the Italian localized desktop computer.
In addition I should mention that the desktop was previously Windows 7 and upgraded to Windows 10, while the laptop came with Windows 10 pre-installed.

Closing confirmed external. Thanks for the report!

For those like me who are having this issue on a fresh install of Windows, you'll find a way to resolve the issue here: https://github.com/lzybkr/PSReadLine#upgrading.
TLDR: PSReadLine is now shipped with W10, update it!

For future people doing web searches, I had this problem, and found this issue. I could run Get-PSReadLineOption just fine and all was fine and jolly on that end.
Turns out that I was the problem, not Powershell. I had configured Windows Terminal to start PowerShell like this:
"commandline": "powershell.exe -NonInteractive -ExecutionPolicy RemoteSigned",

Turns out that's not such a good idea! Remove the -NonInteractive part, and you're all good 👍
"commandline": "powershell.exe -ExecutionPolicy RemoteSigned",

I probably copy pasted it from somewhere without giving it too much thought.

I had the same problem and fixed it by running the following command in an elevated shell and then restarting it:
Install-Module PSReadLine -Force -SkipPublisherCheck -scope allusers


verilator: Update to version 5.018

Updating to Verilator 5.018 slightly improves performance for us, so I wanted to gauge if there is any interest in upstreaming these changes.
Quite a few things have happened in the Verilator, so the rules proposed in this draft are not backward compatible with Verilator 4.224. Is it desirable to support both versions?

/gcbrun

Will merge if it passes the ci

Posting a quick reminder in case this one has slipped through the cracks over the holidays. Let me know if anything is missing for a merge!

@mithro @QuantamHD Kind reminder...

@QuantamHD @mithro friendly ping here 😄 I was gonna make the same change but found this PR to have been a step ahead.
Though, @hovind do you wanna bump to v5.0.22 (current latest)?

I've opened https://github.com/hdl/bazel_rules_hdl/pull/292 which bumps to 5.0.22 and resolves conflicts.

This could be closed now that https://github.com/hdl/bazel_rules_hdl/pull/292 is merged.

I hadn't noticed that conflicts had appeared. Thanks for pushing this forward, @abrisco!


app crash if no variable present

I am testing the module, I am trying to do this APPURL || 'predefinedURL'  but if I Import APPURL and it is not defined in any .env files the app crashes, I was hopping it would come empty so I could evaluate if its empty or null I could use a predifined one, now it is demanding me to use a .env file or it wont start the app at all.
I even tried import env from ...  ehh error I cannot import env from react native dotenv, I tried import * as env, it doesn't work either.
so I have no use for this lib at the moment.

This would be required for our use case too: we want developers to be able to override configuration as needed (to point to qa/staging environments, or override settings for testing) but want the app to use the prod configuration by default if no env file is present.
I wonder if this can be accomplished using require style imports and default parameters? For example:
const {
  APP_URL = 'predefined',
  FOO = 'foo_default',
  BAR = 'bar_default',
} = require('react-native-dotenv');

This might work since require style imports are just returning an object and destructured keys would be undefined.

I had to move to another library, but I will try it soon.

@HERRKIN what library did you move to?

@kylethebaker I tried what you suggested as the following :
const { API_BASE_URL = '' } = require('react-native-dotenv')

but the Metro Bundler fails with the following :
error: bundling failed: Error: Unable to resolve module `path` from `/Users/zedtux/Developments/companion/node_modules/react-native-dotenv/index.js`: Module `path` does not exist in the Haste module map

This might be related to https://github.com/facebook/react-native/issues/4968
To resolve try the following:
  1. Clear watchman watches: `watchman watch-del-all`.
  2. Delete the `node_modules` folder: `rm -rf node_modules && npm install`.
  3. Reset Metro Bundler cache: `rm -rf /tmp/metro-bundler-cache-*` or `npm start -- --reset-cache`.  4. Remove haste cache: `rm -rf /tmp/haste-map-react-native-packager-*`.
    at ModuleResolver.resolveDependency (/Users/zedtux/Developments/companion/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:161:1460)
    at ResolutionRequest.resolveDependency (/Users/zedtux/Developments/companion/node_modules/metro/src/node-haste/DependencyGraph/ResolutionRequest.js:91:16)
    at DependencyGraph.resolveDependency (/Users/zedtux/Developments/companion/node_modules/metro/src/node-haste/DependencyGraph.js:272:4579)
    at dependencies.map.relativePath (/Users/zedtux/Developments/companion/node_modules/metro/src/DeltaBundler/traverseDependencies.js:376:19)
    at Array.map (<anonymous>)
    at resolveDependencies (/Users/zedtux/Developments/companion/node_modules/metro/src/DeltaBundler/traverseDependencies.js:374:16)
    at /Users/zedtux/Developments/companion/node_modules/metro/src/DeltaBundler/traverseDependencies.js:212:33
    at Generator.next (<anonymous>)
    at step (/Users/zedtux/Developments/companion/node_modules/metro/src/DeltaBundler/traverseDependencies.js:297:313)
    at /Users/zedtux/Developments/companion/node_modules/metro/src/DeltaBundler/traverseDependencies.js:297:473


Allow lightning scheme

This adds the possibility to paste or scan an invoice (on "SEND") even if the payment request is prefixed by "lightning:" or "bitcoin:" (as per recommendation in https://github.com/lightningnetwork/lightning-rfc/blob/master/11-payment-encoding.md) which some wallets (e.g. eclair) do.
fix #17
I would suggest to squash on merge (or should I do it manually?)

Sorry for the unrelated changes; but my IDE (PyCharm) fixed a few of the wrong indents and spaces...

Hi, the added functionality looks good but is obscured by the reformatting changes and the structure of the PR. I think review would be much easier if you could either change this PR or open a new one so that it avoids:

commits that cancel each other out (don't fix errors from previous commits in newer ones in you PR, use interactive rebases instead)
reformatting commits (you can probably deactivate that behavior in your IDE)
merging master into your branch, rebase on master instead if it changed considerably since you forked

These improvements will make reviewing your PR much easier :)
(Please ignore the broken CI for now, it's not due to any of your changes since they only touched the JS part.)

Updated. Beside the additional formatting changes the points you listed should have been resolved by the squashing. But I agree that this is cleaner.

Let's focus this PR on the lightning: change.
For the fallback it appears that the BOLT is missing the exact details https://github.com/lightningnetwork/lightning-rfc/issues/323 (although as you linked there seems to be a general agreement).

@sgeisler I don't really get what zap-desktop is doing in their code (I admit that my JS skills are limited). I would parse this e.g. in this way:
      if (this.send.data.bolt11.startsWith('lightning:')) {
        // this invoice is prefixed - simply remove the 'lighting:' part
        this.send.data.bolt11 = this.send.data.bolt11.slice(10);
      } else if (this.send.data.bolt11.startsWith('bitcoin:')) {
        // a prefix of 'bitcoin:' indicates bip21 encoding with a bitcoin address
        // for fallback and the bolt11 added as the value for the 'lightning' parameter
        let split_bolt = this.send.data.bolt11.split('?');
        if (split_bolt.length === 2 && split_bolt[1].startsWith('lightning=')) {
          this.send.data.bolt11 = split_bolt[1].slice(10);
        }
      }

What do you think?

bip21 allows multiple parameters to be chained using &. So naively assuming everything behind the lightning key to be the bolt11 value doesn't work in general. Given the complexity I'd advise against just splitting the string a dozen times, instead writing a regex with a capture group seems to be the right approach.

Ok.. definitely too naive.. ;-)
Will you merge the basic lightning PR?

I'm not sure why the CI fails for your PR but not master. You haven't changed anything that's tested. Could you please rebase on master to test if CI works afterwards?

Hm.. maybe the env is different on other branches than on master..?!
It seems to fail after: getenv("LNTXBOT_API_ENDPOINT")

Yeah, found this too, it seems they use some secret API endpoint for integration testing. Secret env vars aren't available for PR builds. I informed people with the rights to fix it, no more I can do here :(


TypeError: 'type' object is not subscriptable

trying to use the example.py after installing via pip complainst that 'type' object is not subscriptable. Not sure if I'm just holding it wrong or what...
Traceback (most recent call last):
File "post.py", line 2, in
from cohost.models.user import User
File "/home/jer/.local/lib/python3.8/site-packages/cohost/models/user.py", line 3, in
from cohost.models.project import EditableProject
File "/home/jer/.local/lib/python3.8/site-packages/cohost/models/project.py", line 90, in
class EditableProject(Project):
File "/home/jer/.local/lib/python3.8/site-packages/cohost/models/project.py", line 108, in EditableProject
def post(self, headline: str, blocks: list[Block], cws: list = [], tags: list = [], adult: bool = False, draft = False):
TypeError: 'type' object is not subscriptable

Hi! We use type hinting on a list - which, I don't think is supported in Python3.8 - this works OK on my machine running Python 3.11, and I vaguely remember this working using Python3.9.
Let me know if this works in Python 3.9, and I'll add a note to the README.txt :)

val

Hey, thanks for the pointer. I ended up doing the quick lazy thing and just using 3.11 because it's known-good, but one of these days I'll try 3.9.  I'm not super well versed in python, so I don't know all the hoops to jump through for having multiple versions installed. Someday, though, I'll try it!
Thanks a bunch for this library, though. I'm posting successfully which was my only real objective.

godo to hear you're posting successfully ! i'll close this now , as i've made changes that should support 3.8 😄
to anyone reading this who does have issues on 3.8 in future - please feel free to reopen!


Why can't I find Reserved Instance prices in my Enterprise Agreement (EA) Price Sheet / Rate Card

Background - this drove me mad trying to do some analysis for an EA Customer, it wasnt obvious / resulted in support case =<PHONE_NUMBER>000958
--
You can't , because they are not there , because the price for reserved instances is the same for EA Customers , as it is for Retail customers so if you want to download all prices at once  (as opposed to using Azure Pricing Calculator), use API sample as per below.
https://docs.microsoft.com/en-us/rest/api/cost-management/retail-prices/azure-retail-prices

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

ID: 8586a81c-962d-3eb4-bc5f-0af3d6296852
Version Independent ID: d3079d15-2220-61d7-4f40-b1a665b01938
Content: Azure EA VM reserved instances
Content Source: articles/cost-management-billing/manage/ea-portal-vm-reservations.md
Service: cost-management-billing
Sub-service: enterprise
GitHub Login: @bandersmsft
Microsoft Alias: banders

@andyballgit Hi there. As you discovered, any reservation discounts that your organization might have negotiated are not shown in the EA portal price sheet. Previously, the discounted rates were available in the EA portal, but that functionality was removed some time ago. If you’ve negotiated reduced reservation prices, currently the only way to get a list of them is to raise an Azure support request.
The prices for reservations are not necessarily the same between retail rates and EA. They could be the same, but if you’ve negotiated a discount, the rates will differ.
As you noted, prices shown in the Azure Pricing Calculator and https://docs.microsoft.com/rest/api/cost-management/retail-prices/azure-retail-prices should match. Querying the API is the best way to view all prices at once.
#please-close

@bandersmsft My ask was that the documentation was not available / clear on this , and could it be updated.

@andyjballgit Sure, I'll update the article to echo what I mentioned in my previous comment. Will that work for you?

that would be great thanks :-)

@andyballgit Doc update in progress with https://github.com/MicrosoftDocs/azure-docs-pr/pull/159098. The article should get updated live later this afternoon.


Drivers functionality

Want to discuss the functionality for Drivers
My vision is:

Implement new model of Driver

name
rfid (or uniqueId)
company, department etc.

Implement permissions like for Geofences and Computed Attributes
Driver linked to device mean that he can operate (drive) it
Driver linked to group mean that he can operate (drive) all devices from this group
Driver linked to User mean that User can edit/delete the Driver.

Extend Device model for one field:

boolean limitDrivers

Implement DriversHandler that will generate alarm if Device has limitDrivers = true and position.attributes.rfid not in list of linked Drivers

Extend Trip report to set Driver name for every trip

Or it is too complex?

I'm not sure if we need limitDrivers at this point. Everything else seems reasonable.

May be not in a such way but I want to achieve following things:

Car can be driven by everybody and no alarms should be generated (but if some Driver used RFID his name should be in reports)
Car can be driven by only limited list of Drivers, and alarm should be generated if rfid not in list and also if device is moving and rfid is empty.

Also want to ask, how usually devices send rfid? In every position or in special packets? Theoretically might be that no one rfid packet came during a trip and we could not determine the Driver.

I think we can start without limitations on drivers. It can be added later, if people request it.
Usually rfid is sent only in single position when driver uses it.  By the way, we should probably rename rfid to something more generic because it can be any other method of identification, in some cases it can even be a keyboard where driver types their id.
I guess the easiest solution is to copy rfid between positions, so we always have it. Maybe there is a better solution?

We can call it driverId or like that. Also I propose do not change protocols to store rfid as driverId, better implement some handler that will translate protocol ids (rfid and others) to driverId.
Then comes new question, how long will we copy driverId until it changes to other? I think it is good for start, in future we can make it more complex, i.e. reset it on ignition off or something.

I think driverId would be a bad name. We will have internal id and references to it called driverId. Maybe it can be something like driverUniqueId.  I think we need to change what decoders save because the name is wrong in many cases.
We copy it indefinitely. Next driver will use his key for identification.


Local Workspace Extensions for .code-workspace files

Recent release notes mentioned Local Workspace Extensions in the Insiders release. It talked about placing the files for the extension in a .vscode/extensions folder, but what if you're using a .code-workspace file because of a multi-root project? Where would you place the extensions then? If this isn't currently a possibility, can it be added?

You can have local workspace extensions in the .vscode/extensions folder of each root workspace folder in multi-root workspace. VS Code detects extensions from all these folders.


[v3] Migrations backwards compatibility

According to our own doc, migrations named with version X are the migrations you can apply once you run on version X.
According to our doc, people on v2.13 wishing to upgrade without disruption would:

Change the code to v3.0
Apply the v3.0 migrations
Change the code to v3.1
Apply the v3.1 migrations
All the while their instance is running and processing jobs.

Compatibility matrix:

Code ➡⬇ Schema
v2.13
v3.0
v3.1

v2.13
✅
✅
❌

v3.0
❌
✅
✅

v3.1
❌
❌
✅

❌ means we don't have to make it compatible, but if it happens to be, it's not a problem, of course
We need to decide what we put in v3.0 and v3.1
Note: the change of status = aborting -> abort_requested might need a couple of trigger just for the time of the dual compatibility (adding the `abort_requested column and update its value based on the status, then add a trigger that synchronizes the 2 columns, and in the next release, delete the triggers and the column)

I must confess that I get totally confused by naming the migrations now. In the contributing docs we say "xx.yy.zz is the number of the latest released version of Procrastinate" and in the migrations docs "you want to update to Procrastinate 1.15.0 ... migration scripts whose versions are greater than or equal to 1.9.0, and lower than 1.15.0". But then in the above table and #1186 you name the migration 03.00.00_01_cancel_notification.sql which won't be lower when we include this migration in a 3.0 release.
Unfortunately, I also don't fully understand the "Note". Have I missed something in my migration?

It is confusing :(
When we wrote procrastinate, we were in an environment where we couldn't stop the service while applying migrations, so we had to ensure we created compatible migrations, that there would always be a path where you upgrade code, then db, then code, then db etc, without service interruption. As of today this is still an official commitment procrastinate does. We can revisit this but I believe it's worth trying to keep it.
For v3, you're right that the move I make is probably wrong but the migration was named for 2.9.2 which is also wrong. The reality is that:

Either when we're ready to make v3, we make one last v2 that adds stuff, and then in the v3 migrations we remove stuff
Or we'll do a v3.0 that does almost no change in the code (so almost identical to v2.x) but introduces DB changes and a v3.1 that will introduce everything we've added to the v3 branch. I think that's the preferred solution (even if it means the v3.0 will actually not be the v3, but if we release both at the same time, I guess no one will use the v3.0, everyone will jump straight to the v3.1)

We should definitely run the tests with the DB on the previous schema to enforce this, otherwise it's probably prone to wishful thinking.
I think it would also be interesting to start versioning our procedures, so anytime we change them, we can control easily what version of procrastinate uses what version of the procedures while still having multiple ones in the code. That might be much less :exploding_head: for us. Though, we can't do the same with all objects (tables, enums, triggers...), of course.
I sometimes wonder if it's worth using procedures at all, compared to doing everything in the queries, but that's a whole other debate.

Sorry, I am still a bit confused 😞. So with #1186 we will do it the other way around than

there would always be a path where you upgrade code, then db, then code, then db

because

we'll do a v3.0 that does almost no change in the code (so almost identical to v2.x) but introduces DB changes

If the migration will be part of v3.0, wouldn't it be more congruent to check the latest v2.x version (straight before the release) and name it that way?
But maybe I take care of those other open issues for v3 and just watch and learn what you do with this issue here 😉.

We should definitely run the tests with the DB on the previous schema to enforce this, otherwise it's probably prone to wishful thinking. I think it would also be interesting to start versioning our procedures, so anytime we change them, we can control easily what version of procrastinate uses what version of the procedures while still having multiple ones in the code. That might be much less 🤯 for us. Though, we can't do the same with all objects (tables, enums, triggers...), of course.
I sometimes wonder if it's worth using procedures at all, compared to doing everything in the queries, but that's a whole other debate.

And all those triggers that use them?

It is confusing :( When we wrote procrastinate, we were in an environment where we couldn't stop the service while applying migrations, so we had to ensure we created compatible migrations, that there would always be a path where you upgrade code, then db, then code, then db etc, without service interruption. As of today this is still an official commitment procrastinate does. We can revisit this but I believe it's worth trying to keep it.

I'm curious how this is supposed to work with all the changes in the database schema. Can't we justify the service interruption with a major release and the breaking changes (I really regret introducing that aborting state 🙄)?
I also wonder why the migrations don't have the same version as their associated release. That way, deciding what to migrate to would be pretty straightforward (I am happy that we use the Django migrations in our apps), but I'm probably just missing something.

I'm curious how this is supposed to work with all the changes in the database schema.

Usually, it's about making the schema support 2 versions:

When you create a field, you create it one version before you start using it, and if you need it filled with an initial value, you use a migration and a trigger so that up until your code actually starts using it, it has the correct value. Alternatively, if the new field has a simple default value, you don't need a trigger, just create the field before the code starts using it. If the field is required, create it without a constraint and after the code has started using it, deal with potential wrong values created in the meantime and add the constraint.
When you delete a field, you delete it one version after you stop using it. Usually you don't need to add triggers because you don't care what the value will be at the time of deletion.
Many column changes can be expressed with a field addition and a field deletion, potentially with triggers synchronizing the value of multiple fields for the time in between.

This made sense for procrastinate at the time we did it partly because we didn't imagine there would be a lot of migrations, partly because it was the way we did things. I can see that it's really annoying to everyone now.

Can't we justify the service interruption with a major release and the breaking changes

The process was supposed to help users do blue-green deployments even on major releases. If it happens that we can't it means we design the process badly 😅

(I really regret introducing that aborting state 🙄)

Don't be. Process shouldn't get in the way of improving the lib. This highlights that we need to change the process. But all this discussion is also about how we can change it without it being just annoying for users who can't afford breaking compatibility easily.
There will be (hopefully very few, realistically at least some) places where, upon reading that deployment needs to shut off the service, people will schedule it off-hours (evening or weekend). I know because I've been in those kind of situations. As much as I'd appreciate that this kind of practice doesn't exist, as a lib maintainer, I want to make sure that I don't have other people sacrifice their time because I didn't make the effort to make the lib blue-green deployable. It doesn't mean we have to do the impossible, but at least try and see if it's actually easy or not.

I also wonder why the migrations don't have the same version as their associated release.

In the beginning, they had. and then we got it wrong multiple times because when we did the PR, we didn't know if the next release would be a minor or an incremental.
We changed it to "name the migration like the current release" so at least we'd know what it is, but there's still the risk that we would release while there are open PRs and forget to rename the migrations.
I think the migrations need their own version number independent from the release.

I'm going to make a PR to try and fix this mess. It's long overdue.


ZSPFRECOMMENDED - parameter rdisp/gui_auto_logout

just a small observation...
parameter rdisp/gui_auto_logout is as per default 3600 (in seconds). the program tries to match to 1H (actually the same thing) and marks it as not aligned with the recommendations.
Considering the default value (i.e in S4HANA 2020) is 3600 I'd put it that way to avoid changing the default kernel value to match the rule. Reviewed note 2926224 and it's set to 1H in the spreadsheet but I've always seen that parameter expressed in seconds.

Hi diegoy84,
thank you for pointing this out!
I've changed the check in report ZSPFRECOMMENDED for this parameter rdisp/gui_auto_logout from 1H to 3600 via https://github.com/SAP-samples/security-services-tools/commit/5880c7ff520715fdb702ec9946f500210b3c4965
In addition I added another popup for showing the data enabling copy&paste for long values.
Greetings
Frank


Tag Creator - Resolve extra space between pre-adornment github url and input url

Overview
Currently, the URL entry block renders a space between the prefix github adornment and the user-entered portion of the url, as pictured:

The FIGMA entry for this page shows no space after the prefix.
Action Items
[ ] - If behavior is not aberrant, resolve issue as not requiring a fix.
[ ] - Otherwise, resolve Material-UI behavior (presumably) that inserts a space between the two elements.
Resources/Instructions

The intent of MUI's InputAdornment is to add a separate prefix to the text field, such as a dollar sign or kilograms, and not to format the contents of the text, which is how we've been (mis)using it.
So I think the way to go is to use only placeholder. But in using placeholder, we need to handle the case with and without the 'http' prefix. I added a local function to do that, and handle a few more likely user inputs, too.
I've added one more commit to PR #247. If merged, it will now close this issue, too.


Wrong redis.conf after c45049986a7fcb1c9a0591de123c6bf97c761355

After commit c45049986a7fcb1c9a0591de123c6bf97c761355 , a bunch of parameters in redis.conf are left without any value, for example:
syslog-facility
masterauth
...
If parameter is not passed:
I'm using following puppet manifest:
class { '::redis':
bind       => '<IP_ADDRESS>',
port       => 6379,
appendonly => true,
daemonize  => false,
unixsocket => false,
}
With puppet-redis before commit c45049986a7fcb1c9a0591de123c6bf97c761355, it work fine. After this commit redis doesn't start as redis.conf.

Fixed in #https://github.com/arioch/puppet-redis/pull/143


tests/run.lua ... allow exclusion of network-requiring tests

When building the package for Linux distributions, it is usually run in the environment which doesn't have network access. Would it be possible to update test running mechanism to allow exclusion of all tests marked as requiring network access. I now remove file tests/test_dns.lua, but that's certainly not a good solution.

Debian applies a patch to disable relevant tests for this reason.  I thought @jpleau had filed bugs about these issues, but I don't see any.

Still, not fixed in 1.30.0-0:
[    4s] ok 3 coroutines - coroutines
[    4s] Uncaught Error: ./tests/test-dns.lua:5: attempt to get length of local 'res' (a nil value)
[    4s] stack traceback:
[    4s] 	./tests/test-dns.lua:5: in function 'fn'
[    4s] 	./lib/tap.lua:48: in function <./lib/tap.lua:46>
[    4s] 	[C]: in function 'run'
[    4s] 	./lib/tap.lua:55: in function <./lib/tap.lua:42>
[    4s] 	[C]: in function 'xpcall'
[    4s] 	./lib/tap.lua:42: in function 'run'
[    4s] 	./lib/tap.lua:136: in function 'tap'
[    4s] 	tests/run.lua:33: in main chunk
[    4s] 	[C]: ?
[    4s] ok 4 dns - Get all local http addresses
[    4s]   ./tests/test-dns.lua:12: EAI_SERVICE: service not available for socket type
[    4s]   stack traceback:
[    4s]   	[C]: in function 'assert'
[    4s]   	./tests/test-dns.lua:12: in function 'fn'
[    4s]   	./lib/tap.lua:53: in function <./lib/tap.lua:42>
[    4s]   	[C]: in function 'xpcall'
[    4s]   	./lib/tap.lua:42: in function 'run'
[    4s]   	./lib/tap.lua:136: in function 'tap'
[    4s]   	tests/run.lua:33: in main chunk
[    4s]   	[C]: ?
[    4s] not ok 5 dns - Get all local http addresses sync
[    4s]   EAI_AGAIN	skipping
[    4s] ok 6 dns - Get only ipv4 tcp adresses for luvit.io
[    4s]   EAI_AGAIN	skipping

Looks like that's a separate issue @mcepl
From gnulib's test-getaddrinfo.c:
       /* EAI_AGAIN is returned if no network is available. Don't fail
          the test merely because someone is down the country on their
          in-law's farm. */
       if (res == EAI_AGAIN)
         {
           skip++;
           fprintf (stderr, "skipping getaddrinfo test: no network?\n");
           return 77;
         }
       /* IRIX reports EAI_NONAME for "https".  Don't fail the test
          merely because of this.  */
       if (res == EAI_NONAME)
         return 0;
       /* Solaris reports EAI_SERVICE for "http" and "https".  Don't
          fail the test merely because of this.  */
       if (res == EAI_SERVICE)
         return 0;
 #ifdef EAI_NODATA
       /* AIX reports EAI_NODATA for "https".  Don't fail the test
          merely because of this.  */
       if (res == EAI_NODATA)
         return 0;
 #endif

Will make the tests tolerate those errors as well.

Thank you.


Fix load player bug

2022-08-14 13:21:11.278 +02:00 [ERR] [PlayerTrack] Failed to initialize plugin.
System.NullReferenceException: Object reference not set to an instance of an object.
at PlayerTrack.PlayerService.SetDerivedFields(Player player)
at PlayerTrack.PlayerService.LoadPlayers()
at PlayerTrack.PlayerService..ctor(PlayerTrackPlugin plugin)
at PlayerTrack.PlayerTrackPlugin.<.ctor>b__5_0()

Fixed with v3.