v2.47 breaks netlify dev with vue-cli

Hello,
On the new 2.47 version running netlify dev on a vue-cli project will result in the following
◈ Netlify Dev ◈
◈ Starting Netlify Dev with vue-cli
Waiting for localhost:8080.
Usage: npm <command>

where <command> is one of:
    access, adduser, audit, bin, bugs, c, cache, ci, cit,
    clean-install, clean-install-test, completion, config,
    create, ddp, dedupe, deprecate, dist-tag, docs, doctor,
    edit, explore, fund, get, help, help-search, hook, i, init,
    install, install-ci-test, install-test, it, link, list, ln,
    login, logout, ls, org, outdated, owner, pack, ping, prefix,
    profile, prune, publish, rb, rebuild, repo, restart, root,
    run, run-script, s, se, search, set, shrinkwrap, star,
    stars, start, stop, t, team, test, token, tst, un,
    uninstall, unpublish, unstar, up, update, v, version, view,
    whoami

No errors, except a hint  saying a npm command that doesn't exist was used. Downgrading to version 2.46 will fix the problem, so something broke / changed in 2.47.

Setting the dev command manually on netlify.toml fixed it for me
[dev]
  command = "npm run dev"

Seeing this as well, but with Gridsome and on CLI v2.48

@fjeddy , @marcorivm , @macguirerintoul Thank for you reporting this. Can you please try out https://github.com/netlify/cli/pull/843 branch and see if you're still facing the issue!

Same issue on v2.48 rolling back using npm install<EMAIL_ADDRESS>-g is my workaround at the moment.
Happy to test the fix if there are steps to follow. Please explain like i'm five.

Hi @RaeesBhatti, I'm quite inexperienced with this kind of development but I cloned your branch, ran npm link, and tried using netlify dev again. However, I'm getting the same error. Is that the right process to follow?

@macguirerintoul Yes, that seems like the right process. Could you possibly show your package.json, specifically the scripts property!

{
	"name": "bluemoonorganics.com",
	"private": true,
	"scripts": {
		"build": "gridsome build && netlify-lambda build functions",
		"develop": "gridsome develop",
		"explore": "gridsome explore"
	},
	"dependencies": {
		"@gridsome/source-filesystem": "^0.6.2",
		"@gridsome/transformer-remark": "^0.4.0",
		"@sendgrid/mail": "^6.5.0",
		"dotenv": "^8.2.0",
		"gridsome": "^0.7.0",
		"netlify-lambda": "^1.6.3"
	},
	"devDependencies": {
		"eslint-config-prettier": "^6.11.0",
		"eslint-plugin-prettier": "^3.1.3",
		"node-sass": "^4.13.1",
		"sass-loader": "^8.0.2",
		"stylelint": "^13.3.3",
		"eslint": "^6.8.0",
		"stylelint-config-sass-guidelines": "^7.0.0"
	}
}

@macguirerintoul Thanks for providing this information. I've pushed some changes to the raees/dev-config-improvements branch, can you do a git pull in your local instance and try running netlify dev again!


leap :add to track

Based from the C# exercise, I've implemented the leap exercise for java.
https://github.com/Zaldrick/xjava/tree/master/exercises/leap

Didn't understand the meaning of "foredone". Sorry for that useless PR.


favicon doesn't always render for me in a pinned tab in vivaldi

This is an obscure problem, and I am not sure it's on Zulip side even, but that's rather important for me
Basically, this is how a row of pinned tabs in the browser looks for me:

Note that there are two pinned Zulips there! It's just that favicon for one is broken. I personally rely on favicons to tell me if there are unread messages, so this issue prevents me from noticing unreads.
I don't know how to reproduce it -- it just happens randomly for me, and persists for a long time.

Vivaldi | 4.1.2369.21 (Stable channel) stable (64-bit)
-- | --
Revision | 65da8ddfd900d72e3ff8802da65c27b6e9996a54
OS | Linux
JavaScript | V8 <IP_ADDRESS>
User Agent | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36
Command Line | /nix/store/dhf0qa459146rhr8kly0rgwr8a0d8z4c-vivaldi-4.1.2369.21-1/bin/.vivaldi-wrapped --enable-crashpad --flag-switches-begin --flag-switches-end --save-page-as-mhtml
Executable Path | /nix/store/dhf0qa459146rhr8kly0rgwr8a0d8z4c-vivaldi-4.1.2369.21-1/opt/vivaldi/vivaldi
Profile Path | /home/matklad/.config/vivaldi/Default

Yeah, that's probably the right next step.


feat: configure built-in logging

Checklist

[x] I've updated both the azurerm_linux_function_app and azurerm_windows_function_app resources.

It's recommended for built-in logging to be enabled by default: https://learn.microsoft.com/en-us/azure/azure-functions/configure-monitoring?tabs=v2#disable-built-in-logging

will change the configuration to disabled 🫡

It's recommended for built-in logging to be disabled by default: https://learn.microsoft.com/en-us/azure/azure-functions/configure-monitoring?tabs=v2#disable-built-in-logging

Could even consider hard-coding it to be disabled, and recommend using App Insights instead. A variable for enabling built-in logging can always be added at a later date if absolutely needed.

i don't see a problem with that, if the rest of the team @equinor/terraform-baseline-maintainers  agree then i will implement the suggested change 👍🏼

Ran a new test and it passed 👍🏼

It's recommended for built-in logging to be disabled by default: https://learn.microsoft.com/en-us/azure/azure-functions/configure-monitoring?tabs=v2#disable-built-in-logging

Could even consider hard-coding it to be disabled, and recommend using App Insights instead. A variable for enabling built-in logging can always be added at a later date if absolutely needed.

Waiting for feedback from @equinor/terraform-baseline-maintainers.

@kov117 Hardcode built-in logging to be disabled for now, and update tests accordingly. We can always add a variable later if absolutely necessary.

Terraform test passed 👍🏼

Ran test again just to be sure and it passed 👍🏼


Error when using 1.2.4

Hi
I have been using this role from ansible galaxy for the past few days. I encountered an error when I updated it to the latest version (1.2.4).
The error occurs in the "TASK [microsoft.sql.server : Distribute certificate and private key to managed nodes]" task. The error is as shown  below:

After the error occurred to the code which was running fine before, I downgrade the role to 1.2.3 and the error was fixed. I am currently using the 1.2.3 version and it works fine but just wanted to inform you about the error faced in the new version.
Thank you
Ajith

Hi Ajith,
I cannot replicate this issue with 1.2.4, the role runs smoothly for me and everything works.
The version 1.2.4 apparently does not change tasks related to your issue, so that's weird that the behavior differs for you.
Can you provide more details on what OSes you use, and also share your playbook and inventory. I need it to replicate the issue.
If you would have time please also share full output of ansible, it will help troubleshooting too.

Diff between 1.2.4 and 1.2.3: https://github.com/linux-system-roles/mssql/compare/1.2.3...1.2.4

@ajith2234 I noticed that you provide the mssql_pre_input_sql_file variable incorrectly. The version 1.2.4 updated mssql_pre_input_sql_file, it now requires a list instead of a string like it was before.
My guess is that your primary node fails due to this issue, and then it is not being configured for HA. This is a bug to a role, it should check if the primary replica is still being worked on by Ansible prior to configuring HA.
Try updating the setting fact task
    - name: Set facts to create a test DB on primary as a pre task
      set_fact:
        mssql_pre_input_sql_file:
          - create_example_db.j2
        __mssql_test_db_name: ExampleDB
      when: mssql_ha_replica_type == 'primary'

Note that the create_example_db.j2 is a template and uses the __mssql_test_db_name variable. It is for the role test purposes. You can rather use something more straighforward e.g. https://github.com/linux-system-roles/mssql/blob/master/tests/files/create_ExampleDB1.sql
Also note that the role in version 1.2.4 supports configuring HA cluster without a database too if you do not provide mssql_ha_db_names.
It is better to copy-paste the Azure example playbook from the new version README.md and modify it, the example playbook would have variables updated as the new version requires.
Let me know if it works, thank you

HI @spetrosi
it is working now.
Thank you for the support


escape separators in object keys and array values

This fixes the bug found in https://github.com/juttle/juttle-jsdp/issues/7.
The problem occurs when an array contains a value with occurrences of the default separator (:) and none of specified serializers apply to it. We don't escape the separator and when we go to deserialize, we mistakenly treat the value as if it was serialized by a serializer, and try to find to determine the type of serializer and deserialize it that way.
In arrays: If the value is a string, escape the separators in the string so that we don't misread separators as encoding a serialized value when we go to deserialize.
In objects: Escape separators in the key even if the value isn't being serialized so that we don't misread separators as encoding a serialized value when we go to deserialize.
@mstemm @VladVega

+1


Should this crate move to the rust-bitcoin organisation?

bitcoind is depended on by rust-miniscript, as such upgrading it requires upgrading bitcoind. Would it be better if bitcoind lived in the github.com/rust-bitcoin org and some of the maintenance burden was shared around?

cc https://github.com/rust-bitcoin/rust-bitcoin/discussions/2199

Note that this crate other than me already has @apoelstra  and @LeoComandini as mantainers. Also, on crates.io there is me and leo.
I am ok in moving the repo in the rust-bitcoin organization

I wouldn't mind having it in the org; I think it has just as much right to be in the org as rust-bitcoincore-rpc does. And I would love if the maintainership was "shared around" .... but also like rust-bitcoincore-rpc, I personally usually don't enjoy working on this crate because it involves "ugly" stuff around creating and tracking processes, HTTP, etc., and there's a constant maintenance burden caused by Core's constant updates.

From what I read I think I need permission to create repository under rust-bitcoin to make the transfer. Or let me know what I have to do

I sent you a member invite, which should be sufficient.

Moved


Turkish language

Turkish added and some html edited

Hello @BgR8! Thank you for these contributions. ✨
With translations, we typically like to get one community review before merging. Do you know of anyone else on GitHub that would be able to review the Turkish part of this pull request?

unfortunately, but you can ask @fatih who works for github.

Awesome, thank you @BgR8 and @mbrksntrk!


how to propagate error with promises in cote?

const cote = require('cote')

const responder = new cote.Responder({ name: 'err responder', key: 'err' })
responder.on('err', async () => { throw new Error('this is error') })

const requester = new cote.Requester({ name: 'err requester', key: 'err' })

requester.send({ type: 'err' })
  .then((response) => console.log(`response: ${JSON.stringify(response)}`))
  .catch(err => console.log(`error: ${JSON.stringify(err)}`))

Here is simple code, and console outputs empty object.
How to make errors thrown in responder be seen in requester?
thx

This has been tackled here:
https://github.com/dashersw/cote/issues/90

Seems like a bad idea though.
thx


[Request for External] table 1003 "Job Planning Line" - CheckItemAvailable & UpdateReservation

We would like to set procedure CheckItemAvailable and UpdateReservation to global.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Merge #15395 into develop

!ci-build-me

duplicate of https://github.com/MinaProtocol/mina/pull/15406


Dirty fixes #145

Just remove enomem set so sslsplit continue logging http body

Committed an alternative, cleaner solution to the issue. Thanks for your contribution!


Add project suggestion form (maybe listen denton?)

If we just leverage ListenDenton.... we have to do less things? We'd just need to update the info section a little.

fewer things Dan :P


fix chmod value in example

I copied this blindly and got confused when the directory had weird permissions.  I don't think anyone actually wants 700 (0o1274).

👍 Thanks!


UDP Support

I would like to know if you plan to support udp
I see in README that it's not supported yet.

It's not supported at the moment. Do you have a small project that can be used for testing this?

Sure you can use https://github.com/Ckram/kubedock-udp-test
And run the test with testcontainer https://github.com/Ckram/kubedock-udp-test/blob/main/src/test/java/ca/test/kubedockudp/SnmpCallTest.java


Install python3-rosdep instead of python-rosdep

Python-rosdep is no longer available.

Eloquent is targeting Ubuntu Bionic which does have python-rosdep. And since we want to be able to side-by-side install ROS 2 Eloquent with ROS 1 Melodic we want to stick with the Python 2 package.
Only Foxy which targets Ubuntu Focal has only python3-rosdep but the Foxy instructions already use python3-rosdep.


Do I need to do anything?

Please excuse my lack of knowledge @hunterjm but with your update is the process automatic? Or do i need to be putting new code in manually and delete old code etc? If so i'm not to sure off what needs to go where and all that jazz, with me being very inexperienced with HTML and JAVA etc.
I have been reading up though on how to use a bot correctly in best ways to try and avoid detection.
Thanks in advance.

never mind, i see its automatic :)


Correct Way to Make Pixi-Particles Interactive

I am trying to edit my emitter based off of different events (mouseover, mouseout etc)
Is there a guide to how to do this? I am finding that some things can only be edited once (minimumScaleMultiplied for example) and others just don't work (editing minR on the "ring" type emitter).
My approach currently was to just do direct edits to the emitter object:
	enterText.mouseover = function(mousedata) {

		//edit the emitter
		emitter.minimumScaleMultiplier = 5;
		// emitter.spawnCircle.minR = 15;
		// emitter.minLifetime = 4;
		// emitter.maxLifetime = 4;
		// console.log(emitter.minLifetime, emitter.maxLifetime);
	};

Any help?

As you closed this, I assume that you figured out that pretty much anything can be edited on the emitter, but it won't affect existing particles. For that you would have to modify each particle by reference.

Thanks Andrew, yes, I figured out how to edit the emitter object. However, with what you said, how do you select existing particles? Trying to locate the array...

Your mistake is looking for an array! Due to all of the pushing, shifting, and slicing that would occur, particle references are stored as doubly linked lists. The list of live particles can be accessed from the protected property _activeParticlesFirst.

If you don't mind me asking, why are there some variables that are setup in different ways? For instance, on a particle, scale. It is setup both by itself as well as within transform.scale

DisplayObject.scale is a convenience getter for DisplayObject.transform.scale. Any scale related properties on Particle itself are for calculating scale at any given time, rather than the current state.


Is there a way in fMRIPrep to automatically convert native T1w coordinate to SCS / CTF ?

Hi there,
Thanks for this amazing work. I am quite new to fMRIPrep and couldn't find a relevant topic on Neurostars by a quick search. I wonder if fMRIPrep has a solution to automatically convert native T1w to coordinate like SCS/CTF in which the original point and x- y- z-axis are defined by fiducials (nasion, left/right pre-auricular points). Usually, this requires a manual definition of the fiducials, or there are some automatic ways such as the Brainstorm software could also do it by registering T1w to MNI and use the coordinate in MNI to convert native T1w to CTF (details can be found at the bottom of this tutorial https://neuroimage.usc.edu/brainstorm/Tutorials/ImportAnatomy). I guess this is useful if we don't do group-level analysis and some native T1w are tilted which is not preferable for visualization.
Thanks,
Zhengchen

Among the Anatomical derivatives you'll find:
sub-<subject_label>/
  anat/
    sub-<subject_label>_from-fsnative_to-T1w_mode-image_xfm.txt
    sub-<subject_label>_from-T1w_to-fsnative_mode-image_xfm.txt

The latter affine may be applied to anything in T1w space to move it into the fsnative space.


[release] Remove generate_release_notes.sh

Removes a brittle, lesser used script that is easily avoided by copy-pasting the blog post into a new release on the GitHub site manually

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI.

Can we update https://github.com/apache/beam/blob/6c58db5aad81bcd60b78ad60cd6cd4fcbc444f26/website/www/site/content/en/contribute/release-guide.md?plain=1#L1174 as well? (sorry if I'm jumping the gun and its not ready for review)


Why by default Hystrix uses SynchronousQueue queue for ThreadPools?

Why by default Hystrix uses SynchronousQueue queue, i.e. queue size as 0. Is it just because we want to fail fast instead of inserting task in queue?

@spencergibb , can you please address my question or please assign it to concern person.

This is not an issue. You should ask these questions in stack overflow.

@RakeshAMore This is the default because it is the simplest to reason about.  Queues should be used only in cases when burstiness needs to be accommodated.


Add reader/writer for orca gradient and Hessian

Needed for #3

@baumeier  I have written the code for doing so before. Have a look at this orca parser. We can adapt the functions from there instead of starting from scratch

@baumeier  I have written the code for doing so before. Have a look at this orca parser. We can adapt the functions from there instead of starting from scratch

@felipeZ  I also have one, but I guess yours is a little better :)

@felipeZ  I also have one, but I guess yours is a little better :)

The one that I have is not very heavy in the dependencies it use just a Python Parser library. I can adapt it and bring it here if you agree

The one that I have is not very heavy in the dependencies it use just a Python Parser library. I can adapt it and bring it here if you agree

Actually, you don't parse the gradient, do you?

Actually, you don't parse the gradient, do you?

I don't have one there but since I have the building block for parsing orca objects it doesn't take a lot of effort to get a parser for the gradient too

I don't have one there but since I have the building block for parsing orca objects it doesn't take a lot of effort to get a parser for the gradient too

OK, I pushed a new branch orca_support with "my" adapted gradient parser. If you want, you can adapt it and add the hessian.

OK, I pushed a new branch orca_support with "my" adapted gradient parser. If you want, you can adapt it and add the hessian.

This is what the gradient writer should provide.

This is what the gradient writer should provide.

@baumeier  I have added several parsers and their tests.

@baumeier  I have added several parsers and their tests.


stateless bot?

Has anyone done any work or investigation into the possibility of making a stateless commando bot?
I'm playing with creating an abstract class called StatefulCommand that extends Command as a base class for commands that result in prolonged user interactions. My current strategy is to use a per-run redux store that's persisted through restarts (in my case via postgres) and have the concrete class specify a redux toolkit Slice.
This is largely just an experiment that I might try using in production (on a hobby project) if it seems to work well enough. Has anyone tried this before?
Also, does anyone have suggestions for how I might be able to achieve persisting stuff like reaction collectors and the like? I'm not trying to make this a drop-in replacement. It'll need to be used with the understanding "this should be written with the expectation that it might need to be loaded from the database at any time" but I'm curious if there's a way to serialize/hydrate these objects in a more fundamental way.

I'm really interested in this as well. I was looking into the possibility of using on-demand loaded commands (basically completely custom commands) that would need to support reaction collectors as well. A way to do this is to instead make the callback into a method of the command class, so when continuing the execution the client could load the function directly and call it with the collected arguments, but that seems like a weird change to how normal collectors work. I didn't get any better ideas though.

@danbulant I spent a few days working on a set of classes that solves this problem though I've barely tested it at all. The solution is independent of discord but can be used for that purpose. I'll post what I made here in the next hour or so.

@danbulant Alright, so here's what I got so far. This is incomplete and still needs some refinement (particularly when it comes to the proxies). But... it works.
Preface
So the general idea here borrows concepts from react and immer. You define a initial state and a run function, which is fed the last known state of the process. The run function needs to be written in such a way that it anticipates that the state might not start out as the initial state.
Implementation
StatefulProcessor
I'm considering publishing this an an npm package. I can see this being useful for more than just discord bots. Perhaps a better name would be PersistentProcessor

ProxyUtils.ts
This is a collection of utilities for wrapping the state to make sure the user doesn't do something they're not supposed to and to give me the ability to be notified anytime the state is changed.
export default {
  getWatchProxy<T extends Object = Object>(obj: T, callback: Function) {
    var handler = function () {
      return {
        get: function (obj: any, prop: any) {
          const value = obj[prop]
          if (value instanceof Object)
            return new Proxy(value, handler())
          return value
        },
        set: function (obj: any, prop: any, value: any) {
          if (value instanceof Object) {
            const cstr = value.constructor
            if (cstr !== Object && cstr !== Array)
              throw new Error('You can only assign primitives to the state')
          }
          obj[prop] = value
          callback()
          return true
        }
      }
    }
    return new Proxy<T>(obj, handler()) as T
  },
  getReadOnlyProxy<T extends Object = Object>(obj) {
    const handler = function () {
      return {
        get: function (obj: any, prop: any) {
          const value = obj[prop]
          if (value instanceof Object)
            return new Proxy(value, handler())
          return value
        },
        set: function (obj: any, prop: any) {
          throw new Error('Attempting to modify read only object')
        },
      }
    }
    return new Proxy<T>(obj, handler())
  }
}

StatefulProcessor
This is a class that executes instances of StatefulProcess, which is an interface that is exported from this file.
import Knex from 'knex';
import { v4 as uuid } from 'uuid';

import ProxyUtils from './ProxyUtils';

type Primitive =
  | bigint
  | boolean
  | null
  | number
  | string
  | symbol
  | undefined

type JSONValue = Primitive | JSONObject | JSONArray

export interface JSONObject {
  [key: string]: JSONValue
}

interface JSONArray extends Array<JSONValue> { }

export interface StatefulProcess<State extends JSONObject = JSONObject> {
  getDefaultState(...args: any[]): State
  initialize(state: State): Promise<void>
  main(state: State): Promise<any>
}

type Class<T> = new (...args: any) => T

type processesRow = { id: string, name: string, state: JSONObject }
export default class StatefulProcessor {
  private static knex: Knex
  private static table: string
  static config(knex: Knex, table: string) {
    this.knex = knex
    this.table = table
  }

  static async execute(process: StatefulProcess, ...args: any[]) {
    const id = uuid()
    const state = process.getDefaultState(...args)
    StatefulProcessor.saveState(id, process.constructor.name, state)
    await StatefulProcessor.run(id, state, process)
  }

  private static async run(id: string, state: JSONObject, process: StatefulProcess) {
    const proxiedState = ProxyUtils.getWatchProxy(state, () => {
      this.saveState(id, process.constructor.name, state)
    })
    const readOnlyState = ProxyUtils.getReadOnlyProxy<JSONObject>(state)
    await process.initialize(readOnlyState)
    await process.main(proxiedState)
    await StatefulProcessor.endProcess(id)
  }

  private static queryQueues: { [x: string]: Promise<any> } = {}
  private static addQuery(id: string, query: Promise<any>) {
    const existing = StatefulProcessor.queryQueues[id] || Promise.resolve()
    StatefulProcessor.queryQueues[id] = existing.then(() => query)
  }

  static async recoverProcesses() {
    delete StatefulProcessor.recoverProcesses
    const { knex, table } = StatefulProcessor
    const processesRows = await knex<processesRow>(table)
    await Promise.all(processesRows.map(StatefulProcessor.recoverProcess))
  }
  private static async recoverProcess({ id, name, state }: processesRow) {
    const Process = StatefulProcessor.registry[name]
    const process = new Process()
    await StatefulProcessor.run(id, state, process)
  }

  private static async saveState(id: string, name: string, state: JSONObject) {
    StatefulProcessor.addQuery(id,
      StatefulProcessor.knex(StatefulProcessor.table)
        .insert({ id, name, state: JSON.stringify(state) })
        .onConflict('id')
        .merge()
    )
  }

  private static async endProcess(id: string) {
    StatefulProcessor.addQuery(id,
      StatefulProcessor.knex(StatefulProcessor.table)
        .where({ id })
        .delete()
    )
  }

  private static registry: { [x: string]: Class<StatefulProcess> } = {}
  static register(processClass: Class<StatefulProcess>) {
    if (StatefulProcessor.registry[processClass.name])
      throw new Error(`There is already a process named ${processClass.name}`)
    StatefulProcessor.registry[processClass.name] = processClass
  }
}

Usage with Commando
StatefulCommandProcess.ts
This is an abstract class that handles all the stuff that would need to be done every time you use this class with commando.
import { Message, TextChannel } from 'discord.js';
import { CommandoClient, CommandoMessage } from 'discord.js-commando';

import { JSONObject, StatefulProcess } from '.';
import Bot from '..';

type CommandContextState = {
  context?: {
    guildId: string
    channelId: string
    messageId: string
    argString: string
    commandName: string
  }
}
export type CommandState<T extends JSONObject> = Partial<CommandContextState & T>

export abstract class StatefulCommandProcess<State extends JSONObject> implements StatefulProcess<CommandState<State>> {
  client: CommandoClient
  message: Message
  getDefaultState(message: CommandoMessage): CommandState<State> {
    return {
      context: {
        guildId: message.guild.id,
        channelId: message.channel.id,
        messageId: message.id,
        argString: message.argString,
        commandName: message.command.name
      }
    } as CommandState<State>
  }
  async initialize(state: CommandState<State>): Promise<void> {
    this.client = Bot.getInstance().client
    const guild = this.client.guilds.resolve(state.context.guildId)
    const channel = guild.channels.resolve(state.context.channelId) as TextChannel
    this.message = await channel.messages.fetch(state.context.messageId)
  }
  abstract main(state: CommandState<State>): Promise<any>
}

Collect.ts
This is the actual commando command
import { Message } from 'discord.js';
import { Command, CommandoClient, CommandoMessage } from 'discord.js-commando';

import StatefulProcessor, { JSONObject } from '../../StatefulProcess';
import { CommandState, StatefulCommandProcess } from '../../StatefulProcess/StatefulCommandProcess';

interface State extends JSONObject {
  collectedIds: string[]
}
class CollectMessagesProcess extends StatefulCommandProcess<State> {
  collectedMessages: Message[] = []
  getDefaultState(message: CommandoMessage): CommandState<State> {
    const state = super.getDefaultState(message)
    return {
      ...state,
      collectedIds: []
    }
  }
  async initialize(state: CommandState<State>): Promise<void> {
    await super.initialize(state)
    for (let id of state.collectedIds) {
      const message = await this.message.channel.messages.fetch(id)
      this.collectedMessages.push(message)
    }
  }
  main(state: CommandState<State>): Promise<void> {
    return new Promise(resolve => {
      const collector = this.message.channel.createMessageCollector(
        () => true,
        {
          max: 3 - state.collectedIds.length,
          time: 1000000
        },
      )
      collector
        .on('collect', (m: Message) => {
          state.collectedIds = [...state.collectedIds, m.id]
          this.collectedMessages.push(m)
        })
        .on('end', () => {
          const messageAuthorNames = this.collectedMessages
            .map(m => m.member.displayName)
            .join(', ')
          this.message.reply(`Messages written by: ${messageAuthorNames}`)
          resolve()
        })
    })
  }
}
StatefulProcessor.register(CollectMessagesProcess)

export default class CollectMessages extends Command {
  constructor(client: CommandoClient) {
    super(
      client,
      {
        name: "collect",
        memberName: "collect",
        group: 'util',
        guildOnly: true,
        description: "Collect three messages",
      }
    )
  }

  async run(message: CommandoMessage) {
    await StatefulProcessor.execute(new CollectMessagesProcess(), message)
    return null
  }
}

That seems really promising!
I think this would be really cool, but kind of out of scope of normal commando - you could instead make a fork of commando with those features.
Also, I probably won't use this as it heavily changes the way the code is written, but I think it would be really cool if it could be used with some bots and other use cases. I'm still interested in this though, and having the ability to automatically resume bots after restart would mean that users may not even notice down times.

@danbulant Arguments can be passed and persisted in the same way message is passed in in the abstract class. I wouldn't want to fork Commando, though. Because that wouldn't even be enough - you'd have to fork discord.js. I'm thinking I'll just make this a package because it isn't really commando-dependent.
In terms of "heavily changes the way the code is written", there's definitely no way to solve this problem without significantly changing how the code is written. The only way I can think to even get close is to modify Promise#then and then await every line of code. That would enable you to track where you are in the function but then you'd also have to deal with local variables and such. It'd be a mess to even get close.

@dragonfire535 I see you've marked this as an enhancement. After digging into the problem, I'm not so sure it's reasonable to pursue this as an enhancement to Commando. Though I'll probably be turning this solution into an npm package once I've used it a bit more and worked out any kinks. Perhaps once I've done that, you guys could put a footnote in the documentation or something. From what I've seen so far, it's very effective at solving the problem that compelled me to create this Issue

@danbulant I made an example to demonstrate that, while there is some overhead, you can actually write in a fairly natural fashion by making use of switch cases.

type State = {
  stage: number
  roleId: string
  initial: number
  current: number
  max: number
}
class CountProcess extends PersistentCommandProcess<State> {
  role: Role
  getDefaultState(message: CommandoMessage, initialValue: number, role: Role): CommandState<State> {
    const state = super.getDefaultState(message)
    return {
      ...state,
      stage: 0,
      initial: initialValue,
      current: initialValue,
      roleId: role.id
    }
  }
  async initialize(state: CommandState<State>){
    await super.initialize(state)
    this.role = await this.message.guild.roles.fetch(state.roleId, true)
  }
  async main(state: CommandState<State>): Promise<any> {
    switch (state.stage) {
      case 0:
        this.message.reply('How high should I count?')
        state.stage = 1
      case 1:
        while (!state.max) {
          const maxMessages = await this.message.channel.awaitMessages((m: Message) => {
            return m.author.id === this.message.author.id
          }, { max: 1, time: Infinity })
          const max = parseInt(maxMessages.first().content)
          if (isNaN(max)) {
            this.message.reply(`Please reply with a number greater than ${state.initial}`)
          } else {
            state.max = max
            state.stage = 2
          }
        }
      case 2:
        while (state.current < state.max) {
          await Bluebird.delay(1000)
          await this.message.channel.send(`${this.role}: ${state.current}`)
          state.current++
        }
        state.stage = 3
      case 3:
        await this.message.reply("I'm done counting")
    }
  }
}
PersistentProcessor.register(CountProcess)

export default class CountAt extends Command {
  constructor(client: CommandoClient) {
    super(
      client,
      {
        name: "countat",
        memberName: "countat",
        group: 'useless',
        guildOnly: true,
        description: "give me a role to mention while I count, starting at a number",
        args: [
          {
            key: "role",
            prompt: `Which role should I mention while I count?`,
            type: "role",
          },
          {
            key: "initialValue",
            prompt: "What value should I start at?",
            type: "number"
          }
        ]
      }
    )
  }

  async run(message: CommandoMessage, { role, initialValue }: { role: Role, initialValue: number }) {
    await PersistentProcessor.execute(new CountProcess(), role, initialValue)
    return null
  }

}

Yeah I also feel this is out of the scope of Commando and is better served as it's own package.


Comma body: new api

All parts of this PR have now been merged with a bunch of different changes

New Teleop ui: https://github.com/commaai/openpilot/pull/29282
Body packages in op: https://github.com/commaai/openpilot/pull/29162
Support wheeled and stand body: https://github.com/commaai/openpilot/pull/29118
Stream encoderd: https://github.com/commaai/openpilot/pull/29087


Clicking on search results for photo albums brings you to non-existing page

When you search using the search bar on the photo album page and then click one of the results, it gives you an error saying that page does not exist. The album can however be reached by just going through all of the pages with photo albums and then clicking it.

Fixed in https://github.com/Inter-Actief/amelie-private/commit/ca4788070def46079ff27d5d9be42d16a333baf2


Importing old project pod in Rswift file.

I've updated Project name fully. Looks changed all part correctly.
but Rswift generate wrong R.generate file.
This file included strange pod which has previous project name.
Here is screenshot.

it was storyboard bug.


🐛 [BUG]: siteUrl currently exists in two places

Bug Description
Currently, siteUrl exists in two places:

https://github.com/UCL-MIRSG/ansible-collection-infra/blob/163a8ddc552b0131df71e9e44ae67b0f582a6d01/roles/xnat/templates/prefs-init.j2#L4
https://github.com/UCL-MIRSG/ansible-collection-infra/blob/163a8ddc552b0131df71e9e44ae67b0f582a6d01/roles/xnat/templates/xnat-settings.json.j2#L74

It seems that only the latter is actually used. Possibly the latter overwrites the former? Either way, this should be addressed.
Steps to Reproduce

Acceptance Criteria

### Related Work Items

Looking again at this, all of the variables in the siteConfig section of prefs-init.j2 are repeated in xnat-settings.json.j2.
https://github.com/UCL-MIRSG/ansible-collection-infra/blob/163a8ddc552b0131df71e9e44ae67b0f582a6d01/roles/xnat/templates/prefs-init.j2#L1-L18
The only difference is the value of initialized, which is true in `xnat-settings.json.j2. I think we probably don't need to set them again with the config (or alternatively remove them from the prefs-init).
And the XNAT docs suggest that you only set the paths (archivePath etc.) once, and then don't change them. Not sure what would happen if we changed these paths during an upgrade?


Package version 1.0.2 on PyPI does not work

When using sphinx_selective_exclude==1.0.2 installed via pip3, I get the error below when building documentation. (in Travis CI too)
Extension error:
Could not import extension sphinx_selective_exclude.eager_only (exception: No module named 'sphinx_selective_exclude')

Version 1.0.1 works just fine.
I did some research and found out on packaging.python.org that, since you're now using GitHub-flavored Markdown to write the project’s description, you need to upgrade some of your modules on your machine or simply set up Travis CI to build and upload the package for you when you make a tag.

Should be fixed by 1.0.3 just released.


[Feature request] "Object (or enum/whatever fits) of types"

Suggestion
Correct me if I'm wrong, but I don't think this is possible currently. My use case is that I created a function that receives an (API) URL as a parameter, and I can annotate its return.
✅ Viability Checklist
My suggestion meets these guidelines:

[ ] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[ ] This wouldn't change the runtime behavior of existing JavaScript code
[ ] This could be implemented without emitting different JS based on the types of the expressions
[ ] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[ ] This feature would agree with the rest of TypeScript's Design Goals.

💻 Use Cases
So I was trying to create an object with every route from my API that gave me its correspoding response type, like this:
const APIMapping ={
    "/exp": Array<{ level: number; exp: number }>,
}

and further use it in the function like this:
function useFetch(url: string, api: AxiosInstance) {
    const reqInfo = useSWR<APIMapping[url]>(url, async (url) => {
        const { data } = await api.get(url);

        return data;
    });

    return reqInfo;
}

Currently, neither does the value get recognized as a type, not does url get recognized as the parameter, but instead an undefined type. I tried using namespace, interface, enum, type, objects, nothing works.

You can do this today. What it seems like you're asking for might blur the line between types/values though, which is a line we try not to cross.
type APIMapping = {
    "/exp": Array<{ level: number; exp: number }>,
};

function useFetch<K extends keyof APIMapping>(url: K, api: AxiosInstance<K, APIMapping[K]>) {
    const reqInfo = useSWR(url, async (url) => {
        const { data } = (await api.get(url));

        return data;
    });

    return reqInfo;
}

interface AxiosInstance<K, V> {
    get(key: K): Promise<{ data: V }>;
}

function useSWR<T extends string>(url: T, arg1: (url: T) => Promise<unknown>) {
    throw new Error("Function not implemented.");
}

For future references, please fill out the issue template appropriately (or reconsider if the suggestion doesn't meet our criteria for new features).

Thank you very much, that's a really ingenious way to do it that I didn't know was possible nor could find on Google. Retro-actively feeding a type parameter based on the type infered from a parameter value.

By the way, type already supports the "object of types" I was looking for. But I had to index it using a type, so I had to retrieve a parameter value into a type using your solution so I could index it as APIMapping[K].


openlane PDNsim changes

+ add VDD_PIN_VOLTAGE and GND_PIN_VOLTAGE needed by PDNsim for ir drop analysis
- remove sky130_fd_sc_hvl__tt_025C_3v30_lv1v80 from LIB_SYNTH as it breaks abc in yosys and I don't think level shifters are needed for synth (if I understand correctly that this lib is for level shifters)

Thanks for catching that. Update pushed

Pulled and merged.  Mirror site will update tonight.


[TEST] Should create an order with product with fixed promotion

I want to merge this change because it adds test for creating an order with product with fixed promotion CORE_2101
Impact

[ ] New migrations
[ ] New/Updated API fields or mutations
[ ] Deprecated API fields or mutations
[ ] Removed API types, fields, or mutations
[ ] Documentation needs to be updated

Pull Request Checklist

[ ] Privileged queries and mutations are either absent or guarded by proper permission checks
[ ] Database queries are optimized and the number of queries is constant
[ ] Database migrations are either absent or optimized for zero downtime
[ ] The changes are covered by test cases

We should merge only when the PR has at least two approves.


Copy Tree command and combine inherited (#2)

Add "Copy Tree" and "Copy ID" commands to DataTreeControl
Hide full class paths ("flash.display.MovieClip" shows as "MovieClip")
List inherited vars alongside main vars of a class instance
Use FD4 code styling (braces on new lines)
Add comments for String utilis (StringsHelper)

To me this looks good, needs to be localized though. Before doing anything else, let us review this relating to our plans and current works on FD5.

I will re-submit this PR against the fd5 branch, after whatever changes are made.

Changes done. Please see PR https://github.com/fdorg/flashdevelop/pull/608


chore: k8s schema for v1.22.0

Generated using import-spec.sh.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license

Merging for now to unblock myself


testing of sct_register_graymatter gives almost empty template

There is a problem with the warping field used for testing sct_register_graymatter. Testing command is : sct_register_graymatter -t mt/label/ -w mt/warp_template2mt.nii.gz -gm mt/mt0_gmseg.nii.gz -wm mt/mt0_wmseg.nii.gz -manual-gm mt/mt0_manual_gmseg.nii.gz -sc mt/mt0_seg.nii.gz -qc 0
Check that the warping field in the testing data (mt/warp_template2mt.nii.gz) is the warping field corresponding to Template-->T2-->MT.
See result of testing in /Users/sadup/data/tmp.160407150753/results_sct_register_graymatter/tmp.160407150754_129029/label

this function is slowly being deprecated as of v3.2.1


[bug/feat] Allow Bitcoin Core RPC / built-in bwt to accept https:// urls

I'd say this one falls somewhere between a bug and a feature request 😁
On embassyOS, we allow connections to the bitcoin rpc via an https address only so credentials cannot be intercepted on the network.  nginx proxies that connection to the bitcoin core container's rpc port.
In Sparrow 1.7.1 for debian amd64, when I go to File > Preferences > Server > Bitcoin Core
I enter https://mylocalbitcoinrpcnodeaddressname.local:443
Unfortunately, when I specify https:// , it strips the :// and just attempts to contact http://httpsmylocalbitcoinrpcnodeaddressname.local
Is it a heavy lift to feed an https address to bwt?
Next step - https://mylocalbitcoinrpcnodeaddressname.local uses a custom CA, which I've imported to my certificate store using:
sudo cp mycacert.crt /usr/loca/share/ca-certificates/
sudo update-ca-certificates

Any hurdles there?

Personally I'm of the view that if you don't trust your local network, you probably shouldn't expose Bitcoin Core RPC to it at all. I don't think that exposing the RPC over untrusted networks should be encouraged (and I recommend again using it over Tor).
That said Sparrow should not try to be too prescriptive, so I'm happy to allow this usage if the port is explicitly set to 443. However BWT does not appear to support https calls at all, and additionally has no configuration for a self-signed certificate (using ca-certificates is not a cross-platform approach). I am however working on native Bitcoin Core support in Sparrow, and I'll try to include this use case.

That said Sparrow should not try to be too prescriptive, so I'm happy to allow this usage if the port is explicitly set to 443.

I've included this as part of 08cf01a5. Sparrow doesn't try to verify the server certificate, since the main point here is encryption and not verification.


Catch other connection errors

I was receiving TLS certificate unknown alerts from the server. They were handled differently from other connection errors. I wasn't completely sure if you wanted to handle errors on a case-by-case basis to see if they could benefit from more information or not. The only other error that I've seen so far is {:error, {:tls_alert, something}} if that's the case.

Hi everybody! I just want to add here that another error that isn't handled (and would be handled by this PR) is :timeout
11:32:31.643 [error] GenServer {Tortoise.Registry, {Tortoise.Connection, "test"}} terminating
** (WithClauseError) no with clause matching: {:error, :timeout}
    (tortoise) lib/tortoise/connection.ex:583: Tortoise.Connection.do_connect/2
    (tortoise) lib/tortoise/connection.ex:385: Tortoise.Connection.handle_info/2
    (stdlib) gen_server.erl:616: :gen_server.try_dispatch/4
    (stdlib) gen_server.erl:686: :gen_server.handle_msg/6
    (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3

Sadly this causes a nasty avalanche effect since when a :timeout occurs, the Connection doesn't back off but just crashes and tries to reconnect immediately.

@rbino oh, good catch; I will merge it then!

Released in v0.9.3

The MQTT 5 stuff is slowly progressing, by the way. Hopefully I will work on it this weekend—the user-defined properties keep causing design issues, so they really are a blessing and a curse :)

I've opened https://github.com/gausby/tortoise/pull/94 since merging this doesn't fix completely the timeout problem (since it is not classified as connectivity error)


Use Web3Connect

https://github.com/web3connect/web3connect

What providers do we want? Will need API keys as well.

@nickplace the title was actually misnamed, this is about Web3Connect integration. As for what’ve we want, I’m not sure. Checkout Alchemy’s integration maybe and see what they’re doing doing? We can start with not having providers that require keys and add them later. Ideally we’d have Metamask, hardware wallets, and a credit card compatible option (Portis, etc).

This should be implemented in UI V2, as we currently only support MetaMask


[C++][FS][Azure] SAS token authentication

Describe the enhancement requested
Child of https://github.com/apache/arrow/issues/38598
Add support for Azure CLI auth. Probably just accept the SAS token as an argument and use AzureSasCredential https://github.com/Azure/azure-sdk-for-cpp/blob/101f20f2bbf3dd5f6438565cd9f709a231317f77/sdk/tables/azure-data-tables/inc/azure/data/tables/credentials/azure_sas_credential.hpp#L16C9-L16C27. This should make the implementation very similar to all the other Azure auths.
One possible complication I'm aware of is in CopyFile, because this is implemented by generating a federated SAS token from whatever the original authentication was. I don't know if its possible to get a federated SAS token when using SAS token auth.
Also I'm not sure we need to generate a federated SAS token to implement CopyFile. I think we should be able to use Copy Blob instead of Copy Blob From URL. I think the latter is only needed if the source is not in the same Azure blob storage account.
Component(s)
C++

The option 1 is better, right? Let's try the option 1.

The option 1 is better, right? Let's try the option 1.

I thought so too but, after trying it, now I'm not so sure. I checked a few of the Azure SDKs (C++, Python, and golang) and it actually looks like none of them expose the Copy Blob API.
I found the SourceAuthorization option which should allow configuring different authentication to the source when using Copy Blob From URL. Plus some some examples of how to use it in azcopy. There also seem to be a string of changes in azcopy to try to get this working correctly, because of problems like making too many token requests or using a cached token after it expired. The current implementation adds a custom http policy when creating the Azure client, which intercepts requests that include an empty x-ms-copy-source-authorization and populate it https://github.com/Azure/azure-storage-azcopy/blob/7f5ab059c28b09841d009d28b7510d4fcb167dc8/ste/sourceAuthPolicy.go#L47-L77.
This is all looking rather complicated and I don't think we can generate the required bearer tokens with SAS or account key auth. So I think I'll stick with generating SAS tokens, and I think I will just bump their expiry a bit as a simple mitigation for the problem mentioned in azcopy where tokens expired during retries.

Ok, I think I finally worked it out StartCopyFromUri in the Azure C++ SDK can do copies within the same storage account any extra authentication required.


react-native support ?

amazing work!
is this component support react-native?

Nope, this is only for the browser


Use getQueryResults to wait for queries

QueryJob#wait_until_done! and the high-level methods Project#query and Dataset#query should use  jobs.getQueryResults to wait for completion.

[x] The implementation should generate a job ID on the client (#1624).
[x] Call jobs.insert (not jobs.query)

[x] With generated ID to create the job
[x] With retry and backoff on any transient error, including internal error (HTTP 5xx).

[x] Extract the configuration.query.destinationTable field from the response of jobs.insert and remember it.
[x] Use getQueryResults with maxResults=0 to wait for the query job to finish.

[x] Retry on the usual errors
[x] Also retry if the response's jobComplete field is false. (Suggested retry parameters: initial=1s, max=60s, multiplier=2.)

[x] Get the schema from the response of getQueryResults.
[x] Call Tabledata.list with the destination table from the earlier step. Use the schema to decode the rows.

In this requirement:

Also retry if the response's jobComplete field is false. (Suggested retry parameters: initial=1s, max=60s, multiplier=2.)

Each call to getQueryResults with maxResults=0 blocks for a response. We do not understand the point of adding additional wait time to the loop, so marking this as done. Please open a new issue to discuss if we are mistaken.

Closed by #1657.


Support for iOS 12.4.9

I'm stuck on iOS 12.4.8 but I want to upgrade to 12.4.9 with unc0ver but now I can't because it says "unsupported" so can you guys fix that?

Ok

Thanks

I'm on a iPhone 5s stuck on iOS 12.4.9 and it says "unsupported" for me too.  Is there any update on when iOS 12.4.9 will be officially supported?  I did read that Apple has not patched the kernel since iOS 12.4.8.  So I would think it would be relatively easy to add iOS 12.4.9 support. 😉

me too. iPhone 6 plus. unsupported.

Did you guys already upgrade to iOS 12.4.9? If yes, try to use Checkra1n JB. Otherwise, try to downgrade back to iOS 12.4.8

Did you guys already upgrade to iOS 12.4.9? If yes, try to use Checkra1n JB. Otherwise, try to downgrade back to iOS 12.4.8

I am using the iPad Air 1st generation upgraded to 12.4.9. 12.4.8 is now not supported by Apple and cannot be downgraded. There is always an unknown problem during downgrading. By the way, does checkra1n really helps?

Checkra1n works check out this tutorial
https://youtu.be/82jkGEMxQX0
On Tue, Nov 24, 2020 at 8:06 PM Jimmy2004<EMAIL_ADDRESS>wrote:

Did you guys already upgrade to iOS 12.4.9? If yes, try to use Checkra1n
JB. Otherwise, try to downgrade back to iOS 12.4.8
I am using the iPad Air 1st generation upgraded to 12.4.9. 12.4.8 is now
not supported by Apple and cannot be downgraded. There is always an unknown
problem during downgrading. By the way, does checkra1n really helps?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/pwn20wndstuff/Undecimus/issues/2173#issuecomment-733397676,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APGMSXIF62ZNNVFHP6TYWGLSRRKBDANCNFSM4TSIPBSQ
.

You guys could also wait for an upcoming update for unc0ver which might fix this issue. 😞😀😞

Did you guys already upgrade to iOS 12.4.9? If yes, try to use Checkra1n JB. Otherwise, try to downgrade back to iOS 12.4.8

Don't use checkra1n because It has a bug on some device. The system file /binpack/usr/bin/tar of checkra1n is very old when I use it I can't install deb by remote ssh.

Thanks bro. I was just going to click on it.

Finally, you can use Chimera Jailbreak for iOS 12.4.8 / 12.4.9
https://chimera.coolstar.org/
Unfortunately, the success rate of this jailbreak is very low but I tried and it works great! But, I still prefer using unc0ver.

12.5 is out now

Checkra1n 12.4.9 and 12.5 working with no Probs. only you Need a Mac or the Linux USB Boot Stick.

y'all Ŧкภ πƓⱭs

@sjdo Unfortunately me and many other A7 users are encountering issues with that jailbreak: https://github.com/checkra1n/BugTracker/issues/1169

Chimera works with such a low efficiency (at leash wirh A7 devices). I tried on my iPad Air (it says "compatible" so I tried), it reached to 3/3 after about ten trials, and immediately there is an error. I even put an ice pack under my iPad. The best way to jailbreak may be waiting for Unc0ver update, but... who knows.

I've had 100% success with chimera after figuring it out.
Initially it failed nearly every time.
But my strategy is to simply wait around 5-10 minutes after booting, then it works every time.
I don't know if it helps but I also have siri, passcode, find iPad, etc disabled. iPad mini 2.

@AlphaJack So I have no problems maybe because I do it under Mac OS and not Linux.
The only thing that bothers me is that I still have to turn on "Allow untested XXX versions".

I’m still using Unc0ver because the success rate is higher than Chimera

Unc0ver seems not compatible (maybe only compatible with 12.4.8 till now?). I am afraid that it wil harm the hardware. I finally get a success for Chimera but sometimes tweaks does not work. Also, jailbreaking is so tricky and sometimes imperfect.

I’m on 12.4.8 so it’s fine for me. But thanks for your response!

🖕🖕🤣🤣👎🖕😃🧐😉😊😢🤠😺😡😖😶😭🤯😲🎃🥵😿😿🤧🤧🥺🤪🤭😖😩🤬😊😃😊🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕

🖕🖕🤣🤣👎🖕😃🧐😉😊😢🤠😺😡😖😶😭🤯😲🎃🥵😿😿🤧🤧🥺🤪🤭😖😩🤬😊😃😊🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕


Use require instead of autoload

To avoid problems manifested in a multi-threaded environment.
See: https://bugs.ruby-lang.org/issues/5653

Since this will have a gem path could you use the standard require instead of require_relative :)?

Sorry, I'm not sure I understand what do you mean by standard.require_relarive tries to load the specified library relative to the requiring file's path and is part of the standard ruby Kernel module.

That is totally my fault in not explaining :)
require_relative will superseed the load paths and load a file from the exact location we call. The developer/user of this library may want to have a different load path/file setup to be loaded instead. It allows for the more well known case that is a gem uses the base require method of loading.

I see what you mean. Alright, i'll get back to you after changing the require statements. Thanks.

closing as stale!


gitattributes: add file so all *.pp is recognized as Puppet on Github

The Github file type detection is not foolproof, and .pp file extension is shared by Pascal.
Sometimes our files are detected as Pascal, not Puppet as they should be.
This change ensures all *.pp files are recognized as Puppet files.
See https://github.com/github/linguist/issues/2318

:metal:


request: use traditional node style callbacks

problem statement

the bfp callback has the signature function (hash) { ... } vs the more widely known and conventional function (err, hash, ...) { ... }

this means that error handling cannot be a thing and that promisification doesn't work through the normal venues

👍
The new<EMAIL_ADDRESS>has the callback style corrected

https://github.com/evantahler/browser_fingerprint/commit/d386bfcde648244c48aef5768ef3fcdc6c47bae5

Awwwww yeya!  Standard baby!


Does dot accept numbers on field/method names

When I tried to compile with any number on the field or method names, it shows a message like this:
> plantcode $ ./plantcode -l java ../../project/classes.puml
Error parsing input file:
SyntaxError: Expected [ \t], [(], [A-Za-z], [\n] or [\r\n] but "2" found.

This compiles:
@startuml
class Dummy {
	-String field
	#int field
	-int method()
	+void method()
}
@enduml

this too (note the number inside the type):
@startuml
class Dummy {
	-String field
	#Cli2ent field
	-int method()
	+void method()
}
@enduml

This doesn't compile:
@startuml
class Dummy {
	-String field1
	#int field2
	-int method1()
	+void method2()
}
@enduml

@Edit
Underscore _ generates the same error
@EndEdit

This should be easy to address. I will get to this within the week.


Bug: openai's clip-vit-large-patch14-336 failes with assert

https://huggingface.co/openai/clip-vit-large-patch14-336/
this model has a larger image? size
lip_model_load: ggml ctx size = 819.86 MB
.........................................................................clip_model_load: model size =   817.09 MB / num tensors = 589
clip_model_load: 16 MB of compute buffer allocated
clip_model_load: model loadded

GGML_ASSERT: /home/green/workspace/clip.cpp/clip.cpp:1086: nx == image_size && ny == image_size
Aborted (core dumped)

We need to patch clip_ctx to this function to not hardcode the image size to 224.


Address the unchecked scenarios for stale subvolume command

In reference to the PR: https://github.com/rook/kubectl-rook-ceph/pull/206,
there are few comments which needs to be addressed and some unchecked scenarios:

Print the output in proper format
include the type(stale/bound) while listing the subvolumes
delete the omap values for the stale subvolumes
check for pending clones and external ceph cluster presence

Checkout the document for more details:
https://docs.google.com/document/d/1leSMY06IDkQD0weJ62mjgcJXAbppbNgR3u7nU-dSifo/edit

Hey guys, adding a document for the steps that needs to be followed to connect to external cluster. https://docs.google.com/document/d/18fAS4zBgKAEnmESzm38AP2mVgY0AkCgjrlf2OFNoseQ/edit . In my opinion, rather than adding these steps to the script, we can rather add pre-requisites before running the subvolume command in external cluster. Let me know your thoughts on it. cc @travisn @Madhu-1

@yati1998 what's the status on this?

do we need to keep this issue open or closing this one and opening new issue for formatting sounds good

yes, its done. Just a little formatting is required


[FEAT EXTRACTION]

Hi
Is it expected to have troubles when you are extracting Voxel features from Shape features like Sphericity?

runfile('C:/Users/Research/Documents/GitHub/pyradiomics/examples/helloVoxel.py', wdir='C:/Users/Research/Documents/GitHub/pyradiomics/examples')
Loading parameter file C:\Users\Research\Documents\GitHub\pyradiomics\examples\exampleSettings\example_allShape.yaml
Active features:
SphericalDisproportion

    **8. Spherical Disproportion**

    .. math::
      \textit{spherical disproportion} = \frac{A}{4\pi R^2} = \frac{A}{\sqrt[3]{36 \pi V^2}}

    Where :math:`R` is the radius of a sphere with the same volume as the tumor, and equal to
    :math:`\sqrt[3]{\frac{3V}{4\pi}}`.

    Spherical Disproportion is the ratio of the surface area of the tumor region to the surface area of a sphere with
    the same volume as the tumor region, and by definition, the inverse of Sphericity. Therefore, the value range is
    :math:`spherical\ disproportion \geq 1`, with a value of 1 indicating a perfect sphere.

    .. note::
      This feature is correlated to Compactness 2, Compactness2 and Sphericity.
      Therefore, this feature is marked, so it is not enabled by default (i.e. this feature will not be enabled if no
      individual features are specified (enabling 'all' features), but will be enabled when individual features are
      specified, including this feature). To include this feature in the extraction, specify it by name in the enabled
      features.

Calculating features
Starting voxel based extraction
Calculating features with label: 1
Loading image and mask
Adding image type "Original" with custom settings: {}
Calculating features for original image
diagnostics_Versions_PyRadiomics: 2.2.0
diagnostics_Versions_Numpy: 1.16.2
diagnostics_Versions_SimpleITK: 1.2.4
diagnostics_Versions_PyWavelet: 1.0.0
diagnostics_Versions_Python: 3.7.3
diagnostics_Configuration_Settings: {'minimumROIDimensions': 2, 'minimumROISize': None, 'normalize': False, 'normalizeScale': 1, 'removeOutliers': None, 'resampledPixelSpacing': None, 'interpolator': 'sitkBSpline', 'preCrop': False, 'padDistance': 5, 'distances': [1], 'force2D': True, 'force2Ddimension': 1, 'resegmentRange': None, 'label': 1, 'additionalInfo': True, 'voxelBased': True}
diagnostics_Configuration_EnabledImageTypes: {'Original': {}}
diagnostics_Image-original_Hash: 14f57fd04838eb8c9cca2a0dd871d29971585975
diagnostics_Image-original_Dimensionality: 3D
diagnostics_Image-original_Spacing: (0.6269531, 0.6269531, 5.0)
diagnostics_Image-original_Size: (512, 512, 61)
diagnostics_Image-original_Mean: -433.28809775680793
diagnostics_Image-original_Minimum: -1024.0
diagnostics_Image-original_Maximum: 1671.0
diagnostics_Mask-original_Hash: 295d315a562eb6b4ce7d5f592b6cd3558f1d5cf6
diagnostics_Mask-original_Spacing: (0.6269531, 0.6269531, 5.0)
diagnostics_Mask-original_Size: (512, 512, 61)
diagnostics_Mask-original_BoundingBox: (318, 333, 15, 87, 66, 11)
diagnostics_Mask-original_VoxelNum: 24644
diagnostics_Mask-original_VolumeNum: 1
diagnostics_Mask-original_CenterOfMassIndex:<PHONE_NUMBER>282097,<PHONE_NUMBER>570362, 20.70094140561597)
diagnostics_Mask-original_CenterOfMass: (52.608755375434185, -95.86849098608988, -256.49529297192004)

There are no voxel level features to be computed for shape. Shape features describe the mask, not the image voxel content. There is one vector of shape features for one mask.

Thanks for the clarification.


MLPAB-1778: Add LPA registered notification step to LPA progress tracker

Purpose
Fixes MLPAB-1778

Discussed with wider team and we are not going to show the progress tracker for registered LPAS


Bracketed paste works strangely in WSLv1 with ZSH/oh-my-zsh shell

Environment
Platform      : Win32NT
ServicePack   :
Version       : 10.0.19041.0
VersionString : Microsoft Windows NT 10.0.19041.0

Windows Terminal version (if applicable):
Preview 1.7.572.0

WSLv1 running Fedora 33 and Ubuntu 20.04 with zsh/oh-my-zsh shell
PowerShell Core 7.1.2

Steps to reproduce
Type some text and then paste whatever in the terminal.
Expected behavior
Paste should work as in PowerShell - quickly with no overwriting.
Actual behavior
Paste starts with overwriting command (though re-positions itself later), slowly adding characters, and leaves pasted text highlighted (until another key is pressed) when completed (left tab is PowerShell, right is Fedora on WSLv1 with oh-my-zsh).

I have been checking other scenarios:

PowerShell Windows, PowerShell Core, cmd - ok
when I run the same WSLv1 but with bash as a shell - ok
when I run WSL/oh-my-zsh session using Windows Terminal stable 1.6.10571.0 - ok (understandable - no bracketed paste there)
when I paste text in python/ipython/vim from WSL/oh-my-zsh session - ok
when I ssh from the WSL/oh-my-zsh session to a remote server running bash - ok
when I ssh from the WSL/oh-my-zsh session to a remote server running similar zsh/oh-my-zsh combo - ~ok (paste works in a similar way - command will get overwritten first, but paste is very quick and text is not highlighted)
when I run WSL with ZSH shell but without oh-my-zsh - ~ok (paste is quick, does not overwrite the command, but stays highlighted until another key is pressed)
when I run WSL with ZSH shell with oh-my-zsh but disabled plugins (zsh-autosuggestions) - ~ok (paste is quick but delayed, does not overwrite the command, stays highlighted until another key is pressed)

From above, it looks that the problem may be related to zsh plugins, but I wonder, whether you could confirm whether this is or not Terminal's fault?

OK first PowerShell & PowerShell Core do not even have bracketed paste support. You can rule them out first. Second, stock ZSH has support for bracketed paste mode, so you don't need oh-my-zsh or other plugins to use it. If it's working with stock ZSH, then bracketed paste should be working fine. So I think about 80% of the chance this is caused by your zsh configuration, which somehow messes up the bracketed paste handling.

Thank you for prompt reply.
I have found how to solve/work around this particular problem in one of zsh-autosuggestions issues.


Add Battery quirk for Zen thermostat

Add Battery quirk for Zen Within Zen-01 thermostat.

lint run-test: commands[0] | flake8
240./zhaquirks/zen/thermostat.py:1:1: D200 One-line docstring should fit on one line with quotes
241./zhaquirks/zen/thermostat.py:31:38: E231 missing whitespace after ','
242ERROR: InvocationError for command /home/travis/build/dmulcahey/zha-device-handlers/.tox/lint/bin/flake8 (exited with code 1)

still don't know what happened to travis... it's running just not reporting correctly

Running black insist on removing the white space on like 29, but then lint is not happy.

Nvm. For some reason the installed one behaves differently from pre-commit one.


[FEATURE] - OpenTelemetry

@youngjeong46 with https://github.com/aws-quickstart/ssp-amazon-eks/pull/307 do you see anything else on this issue?

@youngjeong46 @shapirov103 - What is this feature about? I'm presently evaluating ADOT to offload metrics and traces from EKS cluster so was just curious.

@sunnygoel87 ADOT is implemented in the PR that I mentioned. I will work with @youngjeong46 to identify if there is any additional scope to this issue.

@shapirov103 I think that's one pattern of deploying ADOT (with Insights) but there are many, which is worth exploring (for one example, there is an ADOT Operator pattern that exists with AMP as shown here.
I don't have a problem with doing it one way or the other, but I think having a separate otel addon can be useful (as a requirement for other patterns that can exist) rather than having it as part of the Insights.

@youngjeong46 these are the current options exposed to configure adot collector. Operator is not installed and be needed for configurability.  As long as there is a clear scope for this, we can keep it.

This feature is implemented via PR #444. Closing the issue as complete.


sankey图的levels和node中depth无效

Version
4.2.1
Steps to reproduce
按照官方实例中的代码，仅增加node中的depth或者levels
What is expected?
预期可以使用levels设置每一层级的样式
What is actually happening?
没有任何作用

难道是文档比代码先发布了？

@RunningGrass Sorry, the version 4.2.1 does not include these features. The next version is available. It is indeed the document first.


Fix broken tests

This PR resolves 2 main issues the bats tests:

'expand-composer-json'
composer

Details
'expand-composer-json' is only discoverable when the correct project-type is set. Valid project types current are "drupal8,drupal9,drupal10" This PR sets project type to "drupal10" as this is currently the default Drupal version.
composer is typically run inside the DDEV web container, which this PR  addressed.

This PR should allow the following PRs to pass, once rebased:

https://github.com/ddev/ddev-drupal-contrib/pull/32
https://github.com/ddev/ddev-drupal-contrib/pull/30


System for converting Monero C++ to JS via modern emscripten; C++ reimpl of major functions

This PR replaces the existing hand-modified cryptonote_crypto_EMSCRIPTEN.js file with an automatically built MyMoneroCoreCpp.js and .wasm fileset. This is called by a modified cryptonote_utils.js file new file, MyMoneroCoreBridge.js.
This work is an incremental step towards the real overhaul of the API, in which the majority of mymonero_core_js implementation (including, for example, mnemonics) will be shifted to C++. The C++ work for that has basically been completed and is getting final testing and possibly additional minor functions (this reimplementation solves #13 and much of #18). In the meantime, this PR, which now only demonstrates reimplementing the initial function of cryptonote_crypto_EMSCRIPTEN by transpiling crypto-ops.c, is being made available for review given its essential functionality.
This PR solves e.g. #8, #7, #1, #50.
The C++ reimplementation (located at https://github.com/mymonero/mymonero-core-cpp) solves #13 (pending bulletproofs implementation stabilization), and since it hooks into Monero's cryptonote_core, it also includes fundamental support for hw devices (#18).

Calling all experienced C++ and Monero developers! The C++ reimplementation needs review. See https://github.com/mymonero/mymonero-core-cpp/issues/6 and https://github.com/mymonero/mymonero-core-cpp/issues/7

Bulletproofs can be enabled and updated per https://github.com/mymonero/mymonero-core-cpp/issues/4

Improvements to error messages can be done per https://github.com/mymonero/mymonero-core-cpp/issues/3

Multisig transaction support has not been added but this PR enables exposing the multisig functionality which is latent in the shared cryptonote::create_tx_… function.

Most of the JS in this repo has been condensed into a single file: cryptonote_utils.js MyMoneroCoreBridge.js. This file was adapted from the old cryptonote_utils.js and now focuses on being a bridge to emscripten by managing dependency loading and serialization. An interface to this core bridge is provided in the familiar file monero_utils.js, which is the entrypoint for all core calls. monero_utils now exports a promise, the resolve of which must be waited upon before calls can be made, which have all been able to remain synchronous. Since monero_utils must be waited upon, synchronous higher level functions which require monero_utils such as the lazy key image generator factory accessor now take a resolveed monero_utils as an argument. If you're including monero_utils from an Electron renderer process, it automatically bridges to include the actual core bridge + wasm on the main process and relays err_msgs over IPC so that they get thrown on the renderer process rather than breaking the IPC call.
Many files have been removed… especially the various JS crypto implementations like nacl, sha3, mnemonics... Some fixes and additional features have been gained, such as a full range of mnemonic languages, and much better support for decoding mnemonics with misspellings.
There are some significant API changes, but the JSON bridge to C++ is extremely simple and almost equivalent in content to the existing JS APIs. This JSON API is fully documented in the readme at https://github.com/mymonero/mymonero-core-cpp.

Currently, SendFunds() remains implemented in JS (in monero_sendingFunds_utils). There's an item to implement it in C++: https://github.com/mymonero/mymonero-core-cpp/issues/5

Fee estimation (which has been updated for bulletproofs) and therefore fixedMixin() have been kept in JS to solve race condition with wasm load: https://github.com/mymonero/mymonero-core-js/issues/53 (Resolved)

Performance of the wasm code should be tested with exception catching on in the emscripten build pipeline: https://github.com/mymonero/mymonero-core-js/issues/52

Money (JSBigInt) amount formatting and tx parsing were moved from cryptonote_utils to money_format_utils (https://github.com/mymonero/mymonero-core-js/issues/50) and monero_txParsing_utils respectively. Access the Monero amount formatter via index.monero_amount_format_utils or require it directly.

tx_key now returned by create_transaction.

Yes, it's because emscripten now builds wasm instead of asm.js, which is must faster than the latter, but must be loaded asynchronously. If you want, you can build the library for asm.js instead (see the CMakeLists file.).
The Electron-related code snippets are merely there to facilitate calling the functions over IPC. They don't affect your dependencies when you want to run it in any other environment. It's not optimized for MyMonero any more than the previous version of the library was, and in fact, we are receiving requests to add bridging to various other functions like decodeRct and are in the process of adding them as much as people are actually communicating their wishes with us. Given that our new setup is significantly faster than any asm.js build or hand-coded JS, and given the future bringing new implementations which are prohibitive to re-implement by hand in JS such as bulletproofs, we would like this library to support the various crypto utils cases going forward. However we have chosen to expose certain functions with their actual implementations in C++ in order to share code across implementations and in order to achieve maximal performance.
Thanks for your question.

@paulshapiro Thanks for the good explanations. Just as a JS developer this API is not really looking good:
const args_str = '{"nettype_string":"MAINNET","from_address_string":"..."}';
const ret_string = Module.create_transaction(args_str);

Can the bindings be improved to something like below?
const ret_string = Module.createTransaction({nettypeString: "MAINNET"});

@p0o that is not the API you should use. You're trying to interact directly with the emscripten module. A ton of work has been done so you don't have to...

@paulshapiro ah my bad, so I should use the functions in MyMoneroCoreBridge only? In that case I say it was better to write the tests with that API. Most devs would read the tests to know how to use the library.

You're free to use it however you want :P

And yeah docs for the core-js API here coming soon, feel free to PR since it's stable enough that we documented the JSON bridge
https://github.com/mymonero/mymonero-core-cpp - Readme - API Documentation

I recently added a bunch of commonly requested crypto functions in this commit: https://github.com/mymonero/mymonero-core-js/commit/299c0c4bd65e29a5983361bbf478ddcc14d9ecd8
address_and_keys_from_seed (aka create_address in previous mymonero-core-js), generate_key_derivation, derive_public_key, derive_subaddress_public_key, and decodeRct


feat: Added cookie based user id memorization to support sticky bucketing

Summary

Generating a uuid for sticky bucketing.
Storage and retrieval of user id from cookie.
Added Changelog file to track changes across versions.
Updated Readme

@trishahanlon It will be awesome if you can find some time and verify the links here too.

@zashraf1985 I'll open a new PR with the Readme link updates. Thanks!

@williamoverton You want to take a look?


Expose new host callback v2/verify function that verifies via certificate and certificate chain

Knowing that the cert is signed by the certificates in the chain needs usage of the picky crate,  not completely written in Rust, and therefore can't be compiled to Wasm and used directly in the policies. Expose it as a host callback, to be performed via sigstore-rs in policy-server.
Needed by https://github.com/kubewarden/verify-image-signatures/issues/39.
Acceptance criteria:
Expose a new Wapc host callback function, v2/verify that accepts the certificate used to sign, and an optional certificate chain.
With input:
{
  type: "SigstoreCertChainVerify",

  // **mandatory**: image URI to verify
  "image": string,
  // **mandatory**: PEM-encoded certificate containing the public part of the key used to sign
  "cert": string
  // optional
  "cert_chain": [
    // list of PEM-encoded certs, ordered by trust usage (intermediate first, root last)
    string
    ],
  // optional:
  "annotations": [
      // signature annotations
      {
        "key": string,
        "value": string
      },
    ]
}

And output:
{
   // true if image verified
   "is_trusted": boolean,
   // digest of verified image
   "digest": string
}

If cert_chain is omitted or empty, cert is therefore considered trusted.
This new v2/verify function overload will call new sigstore-rs functionality to validate the provided signature.
Provide unit tests for this new callback. It is possible to create a certificate chain without frets with cfssl, for example.
Update https://docs.kubewarden.io/writing-policies/spec/host-capabilities/signature-verifier-policies with new callback.

I would prefer to start by creating a new waPC function that looks like that (pseudo code):
fn is_certificate_trusted(certificate: string, certificate_chain: []string) bool

All the certificates are expected to be PEM encoded.
the certificate chain contains all the intermediate certificate first, and then the root CA
The function returns true if the certificate has been issued by the root CA or by an intermediate CA that has been issued by the root CA

This function can be added to the existing waPC v2/verify namespace, but it could also be added to a v1/crypto if wanted, because this is not strictly related with verification done via Sigstore. For example, someone could write a policy that validates the certificates used by Ingress services, to make sure they have been issued by a trusted CA.
The goal of this function is to be invoked by the "verify-image-signatures" policy inside of its own validate_settings method.

That's indeed a better approach, I will then start with a v1/crypto and a is_certificate_trusted().


azure-http-specs, fix typo in access scenario doc

All changed packages have been documented.

:white_check_mark: @azure-tools/azure-http-specs

Show changes
@azure-tools/azure-http-specs - fix ✏

Fix a typo in access test scenario doc

You can try these changes here

🛝 Playground
🌐 Website
📚 Next docs


Support multiple instances for RequireJS

When loading lui via RequireJS, it can be included in multiple places but the init function may still be called only once globally.
It should be possible to mount more than one root per document, at least for the rjs variant.
If you don't use lui via RequireJS, you can totally ignore this issue.

It looks like lui already supports multiple roots by design, there is just a errorcheck that needs to be removed for rjs builds. :exploding_head:


Code.

how to code.

I am not much of a motivational speaker or teacher...you may try to ask chatgpt.

I am not much of a motivational speaker or teacher...you may try to ask chatgpt.

k


Rename layout_set() to layout() for greater parity with Dash for Python

Currently, DashR calls the method which defines the layout as layout_set():
https://github.com/plotly/dashR/blob/8ff358d7e13f659cce9ac17528c4f6166f9a3fd8/R/dash.R#L343-L347
However, in Dash for Python, it's just layout:
https://github.com/plotly/dash/blob/215c75252a8bc08a4ea4e047f60fe31a1e76ebd0/dash/dash.py#L281-L296
We should rename layout_set() to layout() in DashR for parity with the Python implementation of Dash.

This was addressed in https://github.com/plotly/dashR/pull/77. :tada: Closed.


Cleanup an unused func

Please provide a description of this PR:

@hanxiaop: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

release-notes_istio
b4d10156e379598601b1bc701d104fdd54e76f99
link
true
/test release-notes

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test release-notes


helix: reenable haskell syntax highlighting support

Haskell syntax highlighting is disabled in helix-editor by default.
This is because of an issue compiling tree-sitter-haskell on M1 macs,
as its default compilier doesn't support c++14.
As we're using a nix-derived toolchain, we shouldn't be subject to
this problem.
See this comment for more info.

Motivation for this change
Things done

Built on platform(s)

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

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

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

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

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

[ ] Fits CONTRIBUTING.md.

Should the default language.toml be also patched to enable haskell-highlighting?
Otherwise everyone has to populate ~/.config/helix/language.toml with uncommented haskell block.
What about reverting https://github.com/helix-editor/helix/commit/59f94d13b8d61ce338ecf4957c6b4ad945021009 instead?
I'd like at least a successful test report from aarch64-darwin.

Closing in favour of reenabling Haskell support upstream: https://github.com/helix-editor/helix/pull/1417
Unfortunately, the change didn't make it into 0.6.0, but maybe we'll get a minor release soon enough.