Add BatchAddCommand

A functionality to add multiple employees at once would be useful for HR managers.
Let's:

Add BatchAddCommand and BatchAddCommandParser in order to add multiple employees at once via a csv file.
Add PrefixList so that batchadd command can add employees with compulsory and missing fields (e.g. compulsory field for name needed, but can have missing phone number field).
Add parseFileName to take in filename for csv file.

according to #120

LGTM


Automating the Github Actions workflow provisioning in the provider repositories

Pulumi has a lot of the Github Actions Workflow management automated in repo ci-mgmt. Their process is as follows:

generate Typescript files from the Github Actions JSON Schema file
write all the workflows & steps they need in Typescript
generate the workflows, Makefile & other standard files in the ci-mgmt repo
manually trigger a workflow to copy over the generated files from the ci-mgmt repo to the provider repo
create a pull request in the provider repo when the new workflow files changed

Pulumi has a central providers team, hence they implemented a push based system from ci-mgmt to all the providers under their control. Pulumiverse is different in that we have separate maintainers for each of the providers so we decided to implement a pull based setup.
This PR implements the generation process for the following files:

Makefile: standardized build file for a bridged provider
.github/workflows/main.yml: a workflow run when a new commit is merged to the main branch
.github/workflows/run-regenerate-workflows.yml: a workflow which can be manually triggered to request regeneration of the workflows.

Maintainers should be able to choose themselves when they want to regenerate the workflows in their provider after we publish changes to the standard setup. Our process will be different from Pulumi's one.
Initial setup
The first time we need to set up the workflows, we check out the infra and pulumi-<providername> repositories side-by-side, then execute the following commands:
$ cd infra/ci-mgmt
infra/ci-mgmt$ npm ci
infra/ci-mgmt$ npm run gen -- --name <providername> --path ../.. --debug

><EMAIL_ADDRESS>gen
> ts-node cmd/generate.ts "--name" "<providername>" "--path" "../.." "--debug"

Writing ../../pulumi-<providername>/.github/workflows/run-regenerate-workflows.yml
Writing ../../pulumi-<providername>/.github/workflows/main.yml
Writing ../../pulumi-<providername>/Makefile

Create a PR for these changed files and manually process these. After this initial setup, the run-regenerate-workflows.yml workflow file is available in the repo.
Subsequent regeneration by maintainers
Any subsequent action can be triggered via the Github CLI:
$ cd pulumi-<providername>
pulumi-<providername>$ gh workflow run run-regenerate-workflows.yml

This should trigger the workflow on Github Actions. The workflow will clone both repositories, run the npm script and create a pull request automatically when there are changed files.

This is a huge PR. I don't know if governance board members are the right people for this sort of review; maybe we should be reviewing the design, more than the implementation. We could find a technical board, or a sub-group of technical volunteers, for these sorts of large developments.
That said, I have a few points:

This many changes shouldn't be in a single PR. There's too much to grok. Smaller groups of changes, even if they're not yet functional (and not wired up) will make managing reviews much easier.
There's no design, no tests, no documentation of that the generated workflows will do. Even with the best of intentions and large amounts of available time, I wouldn't be able to review this against anything. What problem is being solved? Why is this solution better than others? Why is this implementation the best for the chosen solution?
It looks like the workflow YAML has been translated to a fairly full implementation. Is that implementation original? Or copied from GitHub or Pulumi code? Can we use the original code, instead of copying it? Is all of this implementation used in generating the specific workflows that are generated by this code? That is, has too much code been written, that could have been avoided with a test-first approach to design?

Also: it looks like there's no issue open for this work. Why is this work a higher priority then the existing issues?

The reason I started this PR, even without an open ticket, is that I was the one currently setting up new provider repositories. The current process, although we don't have that many providers yet, is clunky and hard to update when changes need to be made to the build system. I wanted to find a way to keep in sync much easier.
It is indeed quite a bulky PR, but most of the code was copied from Pulumi ci-mgmt repository. The only changes I made were to switch the model from push to pull.
Because of this PR, I had a chat with one of the internal engineers. There is no need to go forward with this PR in its current form. The team is reworking the code in ci-mgmt so it becomes a consumable artefact, not only for Pulumi itself, but also for thirdparties like Pulumiverse or vendor companies managing their own provider.
For now, I'm going to close this PR. I have filed #40 as a replacement.


possible multiple geometry collision bugs

I was doing a map to torture and fix bots, using as tight as possible geometry. When walking the map myself, I noticed various behaviors which seems buggy. Overall, when walking down a slope, one can "tolerate" a ceiling which is lower than if trying to walk the same slope up (in the other direction).
This is especially true when crouching.
Joining the (pretty bad) file I used to notice that:
map-unnamed_src.zip
As a reminder, here is the description of naked humans bbox:
name              "Base Human"
model             human_naked
modelScale        1.0
skin              default
shadowScale       1.0
hud               human_hud

mins              -15 -15 -24
maxs              15 15 32
crouchMaxs        15 15 16
deadMins          -15 -15 -4
deadMaxs          15 15 4
zOffset           -2.0

viewheight        24
crouchViewheight  7
shoulderOffsets   -10 15 0

I believe this bug also happens on https://users.unvanquished.net/~sweet/pkg/map-habitat_1.1.dpk in the win room.


[Question] Can this work be incorporated into Nixpkgs?

Thank you very much for providing this.
Is there any technical obstacle to porting this work into mainline nixpkgs? Is there a reason to prefer to maintain it as an overlay?
Assuming you are open to moving it to nixpkgs what would it take?

Main reason is that there is no tagged releases for foundry yet, so this repo auto-updates daily. Couldn't do that if it was in nixpkgs. And also it's just a patched binary at the moment (also partly due to lack of tags).
See: https://github.com/foundry-rs/foundry/issues/3895
Once there are permanent tagged source releases, we can add a built-from-source derivation that would be a better fit for nixpkgs.
Though more likely I'd pursue getting it added to the Ethereum nix-community overlay repo: https://github.com/nix-community/ethereum.nix/issues/126

Also you're very welcome. :) Happy to make nix users' lives easier.


New Risor options: WithoutGlobal, WithoutGlobals, WithGlobalOverride

cc @luisdavim

@luisdavim - how does this look?
I could've added to your PR but I started this as an experiment and I didn't want to step on your work without running my changes by you.

@luisdavim - how does this look?
I could've added to your PR but I started this as an experiment and I didn't want to step on your work without running my changes by you.

Yeah, no worries 👍 .
This LGTM but I'm not sure if allowing overriding module properties through SetAttr is the best option, I can see pros and cons, I had thought about that but ended up creating the separate Override method for it. Up to you, just something to think about....

@luisdavim - I added Override back. LMK if there's anything off. But I merged already since it seems like this should do it for you.


Plot contamination rates as a function of time

This plot and code for it can be found in this HTML: gs://gnomad-julia/gnomad_v4/sample_qc_improvement_plots.html
There was somewhat limited data on this in v2. I used the gvcf_date for time. For v3.1, Sam grabbed the PDO list for me with dates. I mapped that onto the v3.1 meta HT. For samples with multiple PDO's listed I chose the most recent PDO.
Currently the plots don't have labels, but the x-axis is date and the y-axis is freemix.
v2:

v3:

There are some odd patterns in the v3 plot so I need to look into and make sure I did things correctly, will update after looking into it more.

I figured out the problem with the v3 plot. I forgot to remove the tumor samples and I wasn't correctly choosing only the most recent PDO for a sample.
v2:

v3:

Why are the genomes so much more highly contaminated (whole percentage points) compared to the exomes? Could you plot these with a different color for the samples we ended up releasing versus filtering, just as a sanity check?

I see in the HTMLs that a lot of the samples with sex aneuploidy have high contamination, so it seems likely that like we're capturing both true aneuploidy and contamination.

Additional analyses that came up at the MPG/DSP meeting:

Percent of samples that fail over time because of contamination At both 5% and 2.5%
Percent of samples that fail over time because for any reason (high quality).
Look at the projects for the high samples

Percent of samples that fail over time (grouped by month) because of contamination at 5%, 2.5% and 1%. Note difference in range for the 1% plots.

Here I put the 1% on the same range, so values are cut off, but it’s easier to compare the majority of the months

Percent of samples that fail over time because for any reason (high quality).

It’s hard to say with the exomes if newer samples had lower levels of contamination given that the last point there is in 2016. For the genomes there is a peak over 2016 for the 2.5% and 1% cutoffs, but other than that the percent filtered is lower after that. There doesn't seem to be a huge difference between the 5% and the 2.5%.

We have decided to stay conservative at 5%. Note this will still be evaluated specifically for v4. Final discussion here: https://atgu.slack.com/archives/CRA2TKTV0/p1635353104004800


v0.11 - Decorator component with a href on an Anchor causes caret placement issues & dies on deletion

Do you want to request a feature or report a bug?
Bug
What is the current behavior?
When creating a decorator component that returns an Anchor with a href the editor caret will jump to the start of the decorated component after the second character match.
When deleting the final character of the decorated component the Draft editor will crash.

A simple codesandbox example can be found here:
https://codesandbox.io/s/draft-js-v011-hash-with-link-example-yuiod
Some of my observations are as follows:

Removing the href from the anchor will no longer result in the caret errors or crashing.
In Draft v0.10.5 whenever a decorated component's match changes it will have its render method called.
In Draft v0.11 the render method is only called when the match is first created, when it's 'exited' or when backspace is pressed.

This behaviour would cause issues with components that rely on the matched string for some of their properties.  For example creating a link when the text matches a URL (such as Draft JS Plugins' Linkify plugin).
Those examples can be found here:

https://codesandbox.io/s/draft-js-v0105-linkify-without-plugins-1vth7
https://codesandbox.io/s/draft-js-v011-linkify-without-plugins-qcoz3
Though this might be a separate issue?

Which versions of Draft.js, and which browser / OS are affected by this issue? Did this work in previous versions of Draft.js?

Draft.js v0.11 (worked in v0.10.5)
Safari v12.1 & Chrome v75

Note: Firefox does not crash and appears to work OK in this example, however its render method isn't called when the match changes.

Only seems to affect a tag with href attribute.

Pretty sure #2143 is related.

@thaoms I can confirm that reverting b2f6ed0 fixes the issues that I experienced, however I'm unsure of the side effects of doing so.
We've currently included a modified version of Draft v0.11 in our codebase, with that commit reverted, and we haven't experienced any other issues thus far.
Though you're probably more interested in the status of when a fix will be released, which I don't have any visibility over.

I can confirm this is fixed in 0.11.4, thanks Frank Thompson and claudiopro!


Minor changes to the data

Not a high priority for the immediate future, BUT, so I don't forget:
This sign cannot be hidden, because it is the only one:

But the gloss should be PSHAW (without the prefix).
This will be replaced by new DSP data; so this older example will need to either be hidden or, preferably, deleted.
The same is true for this one:

This should be a gesture (1h)5"wave no" rather than WAVE-NO.  It will also be replaced by new DSP data, properly glossed.  But this example will need to be hidden or, preferably, deleted.

THIS ALSO NEEDS TO BE DELETED:

this also:

There was a missing + for the compound in the SignStream file; so the parts got inserted as separate signs.  These will need to be removed.

Previously we had classified "pshaw" as a gesture.  This was changed in the latest annotations to a lexical sign:  PSHAW.
But it is still being classified as a gesture.  This nedes to be fixed.   The gesture  "pshaw" needs to be deleted and PSHAW needs to be classified as lexical.

There's a typo here:  "VISTOR" is missing an "I" ....
These should be merged as "VISITOR"


Successfully with response but client doesn't get notifications

Successfully sent message: { results: [ { messageId: '0:1511508709940437%6f2857526f285752' } ],
canonicalRegistrationTokenCount: 0,
failureCount: 0,
successCount: 1,
multicastId:<PHONE_NUMBER>395349000 }
i put own server details.when i try to send notification using  firebase console it successfully send notification but i am unable to send notification using fcm-node.

same here, any solutions folks? it work at console notification, but not node :(

can you please share the payload ?

app.js
...
var admin = require("firebase-admin");

var serviceAccount = require('./config/serviceAccountKey.json');

admin.initializeApp({
  credential: admin.credential.applicationDefault(),
  databaseURL: 'https://<DATABASE_NAME>.firebaseio.com'

});
var registrationToken = 'dMVUN5CVhH8:APA91bHNFX69huyYeyFa0gsptEHezZwTIrtiGpStyoS3CCue_CBxNPIpBA_MXPJfhQhiZI-I_i901Z7FAZHwBr67KZGDftoW-hQRG22joDLTV5mxDI9znMRE2aBujYl93_EjxW-L8boS';

var payload = {
		  data: {
			  title: "hello",
			  body: "world"
		  }
		};
		admin.messaging().sendToDevice(registrationToken, payload)
		  .then(function(response) {
		    console.log('Successfully sent message:', response);
		  })
		  .catch(function(error) {
		    console.log('Error sending message:', error);
		  });
...

console :
Successfully sent message: { results: [ { messageId: '0:1512568973984718%e05724c6f9fd7ecd' } ],
  canonicalRegistrationTokenCount: 0,
  failureCount: 0,
  successCount: 1,
  multicastId:<PHONE_NUMBER>948248000 }

im preety sure im following official firebases guide, but its not working at all(sigh)

var payload = {
 notification: {
title: 'Title of test push notification',
 body: 'Body of test push notification',
 click_action:"FCM_PLUGIN_ACTIVITY"
    },
 data: {
  orderId:"123",
 pickLocation:"g10",
dropLocation:"f10 ",
  orderType:"Posted"
}
};
you are doing it the wrong way you are sending data message you need to also send notification object.
the following link help you understand the difference between  Notification message and data messages.
https://firebase.google.com/docs/cloud-messaging/concept-options

AS @naumanahmad17 pointed out, the automatic notification generation is through the notification object in the payload.
Use the data object only when you need to push more "data" into your background service.

thankyou folks! i understand now, and make code works :>

device_token eT9LUtfEQRe1htdCSEVZIy:APA91bED2CktD_qPhQOJTEhDNv2Jd_soLsVnfBbtAzTj6m6Gl45JAHtOfTGUrUL0wkK5IUJoWKpygiffMLFVXkUZPeFcWqRR4OKHOPdSWFOCwmosnXH853l9Ddt2EWmtmrxGMuZd1hVi
0|index  | Notification {
0|index  |   results: [ { error: [FirebaseMessagingError] } ],
0|index  |   canonicalRegistrationTokenCount: 0,
0|index  |   failureCount: 1,
0|index  |   successCount: 0,
0|index  |   multicastId:<PHONE_NUMBER>017097000
0|index  | }
when this error we get kinldy help me?

@Sohailze
I suggest to use firebase-admin-node instead.
as mentioned "kind of deprecated" on very top of readme file, firebase-admin-node can now send push easily.


Markdown not Markdowned by Kramdown

The Markdown views are run through Kramdown (et al) for rendering to HTML format, but for Text format the original Markdown is returned unprocessed.
This makes sense insofar as Markdown is already nicely readable text, but Kramdown provides some desirable options to transform Markdown. Specifically, I put <style> tags in my view / template then use Roadie to correctly inline that in the HTML, but I want to strip the style tags from the Markdown.
Like all good Rubyists, I monkeypatched it in config/initializers/maildown.rb
require "maildown"

module Maildown
  class Md
    def to_text
      Kramdown::Document.new(string).tap(&:to_remove_html_tags).to_kramdown
    end
  end
end

To ship this officially in the gem the API for supplying an custom Markdown renderer would need to change slightly. There would also have to be a way to specify which options you actually want to use.
Perhaps that's more complexity than it's worth. Perhaps just making this a "well documented monkeypatch" would suffice, an orangutangpatch if you will. Plus some care not to change the to_text api.
You may not consider this a bug so feel free to close and anyone searching will find the snippet.

Would probably expose a method that gets called that the user can over-write
def to_text
  document = Kramdown::Document.new(string)
  Maildown.user_format(document)
end

Or something, where someone could take the incoming document and do whatever they want to it.
# config/initializers/maildown.rb
Maildown.user_format = -> (document) {
  document.tap(&:to_remove_html_tags).to_kramdown
}

If you want to give me a patch, i'm fine supporting it.

Hiya,
Okay! I like the user_format idea, that's nice. The slight catch is in customising the Markdown processor as currently .to_html is called in the block so we couldn't use the custom renderer in the to_text or user_format. This is the current snippet from readme for setting custom render engine:
Maildown::MarkdownEngine.set do |text|
  carpet = Redcarpet::Markdown.new(Redcarpet::Render::HTML, {})
  carpet.render(text).html_safe
end

Options I can think of
Simply add a new renderer block config that corresponds to the to_text option:
# default:
Maildown::MarkdownEngine.set_text do |text|
  text
end

# custom config:
Maildown::MarkdownEngine.set_text do |text|
  Kramdown::Document.new(text).tap(&:to_remove_html_tags).to_kramdown
end

and maybe alias set to set_html for symmetry, perhaps with a deprecation.
Or the engine setter could be changed to not call to_html immediately and we do that internally and then the user_format can be added etc. I actually think the above might be easiest and most flexible though, without needing to deprecate or break anything. Thoughts?


CloudFormation stuck in updating DynamoDB table after backend update

Environment information
System:
  OS: macOS 14.4.1
  CPU: (10) arm64 Apple M1 Pro
  Memory: 1.23 GB / 32.00 GB
  Shell: /bin/zsh
Binaries:
  Node: 18.19.0 - ~/.nvm/versions/node/v18.19.0/bin/node
  Yarn: undefined - undefined
  npm: 10.2.3 - ~/.nvm/versions/node/v18.19.0/bin/npm
  pnpm: undefined - undefined
NPM Packages:
  @aws-amplify/backend: 0.13.0
  @aws-amplify/backend-cli: 0.12.0
  aws-amplify: 6.0.28
  aws-cdk: 2.137.0
  aws-cdk-lib: 2.137.0
  typescript: 5.4.5
AWS environment variables:
  AWS_STS_REGIONAL_ENDPOINTS = regional
  AWS_NODEJS_CONNECTION_REUSE_ENABLED = 1
  AWS_SDK_LOAD_CONFIG = 1
No CDK environment variables

Description
I upgraded from beta.3 to these package versions:
@aws-amplify/backend: 0.13.0
@aws-amplify/backend-cli: 0.12.0
Now, I had to update my schemas as the .manyToMany doesn't exist anymore. My code changes are as a subset below. I merged the changes into my staging branch and linked it in my Gen2 Amplify environment as a separate branch. Now, the deployment times out after 30 minutes as the CloudFormation update gets stuck and finishes after 60 minutes due to changes in a nested stack. The update of the ProjectActivityTable started at 2024-04-23 11:44:06 UTC+0200 and finished at 2024-04-23 12:32:20 UTC+0200. Why does it take such a long time?
I was giving up already but while I was writing this issue it finally finished the changes. 4 tables were affected by it and delayed the deployment.
As the deployment failed in Amplify I had to redeploy the change and this time it was much quicker.
 So, let me explain the issue in more detail:
I am using AWS Amplify Generation 2 (Gen2) for managing a GraphQL API schema, which auto-generates DynamoDB tables based on this schema. Previously, Amplify Gen2 supported automatic creation of tables for many-to-many (n:n) relationships with appropriate indexes. For instance, if I defined a Project table and an Activity table, where each Activity could belong to multiple Projects and vice versa, Amplify Gen2 would automatically generate an intermediate ProjectActivity table with activityId and projectId fields. Each field had an index (byActivity and byProject).
To implement this, I simply had to define the relationships in my schemas as follows:

In the Project schema: "activities: a.manyToMany("Project", {relationName: "ProjectActivity"})"
In the Activity schema: "projects: a.manyToMany("Activity", {relationName: "ProjectActivity"})"

However, in the latest version of Amplify Gen2, this automatic handling has been deprecated. Now, I need to explicitly define the ProjectActivity schema myself and manage the relationships using .belongsTo and .hasMany. This change also involves deleting the existing indexes and creating new ones named gsi-Activity.projects and gsi-Project.activities. This index re-creation process is not only time-consuming (approximately one hour) but has also failed to complete successfully. Furthermore, because the existing indexes are deleted before the new ones are created, the rollback process takes an additional hour. During this time, the table lacks functional indexes, significantly impacting the performance of the application.
I am currently unable to determine why the index creation is failing. I need assistance in resolving this issue to avoid extensive downtime and performance degradation.

One question I have is why deleting the existing indexes before creating the new ones?

Further investigation has revealed a potential issue with the index re-creation process in Amplify Gen2. It appears that the re-creation of the indexes, which takes a significant amount of time, is causing the step function to time out. This results in a FAILED state, despite the indexes being successfully created afterward. This issue surfaced during a rollback triggered by CloudFormation. I confirmed that all indexes in DynamoDB are as they were prior to the new deployment attempt. However, the CloudFormation stack is now in a "UPDATE_ROLLBACK_FAILED" state.
This situation is particularly concerning because it prevents me from redeploying my changes through Amplify. The system returns the following error: "Error [ValidationError]: Stack: arn:aws:cloudformation:us-east-1:XXXXXXXXXXXX:stack/amplify-xxxxxxxxxxxxxx-main-branch-xxxxxxxxxx/fbb56210-c337-11ee-bdc6-0e8eacfb1d5d is in UPDATE_ROLLBACK_FAILED state and cannot be updated."
This is occurring in my production environment, which is critical. Any assistance or insights into resolving this issue would be greatly appreciated.

It is expected for index update on a existing table consuming a long time. This is a limitation for DynamoDB that any UpdateTable operation for GSIs is only allowed for one per API call. If you use the AWS::DynamoDB::Table in your CFN template, your deployment will fail as the CFN only allows for one index update per operation. The Gen2 uses a custom resource instead to bypass this limitation to allow for multiple GSI updates within one deployment. However, there is still a hard limitation of 1 hour for the total deployment time in CFN, which means the limit can be exceeded for too many index updates.
In your case, the GSI is updated based on the template difference. Since the old ones never exists in the template, those old indexes will be deleted first. The DynamoDB does not support a direct rename of an existing index but only delete and recreate, which adds more time to this kind of operations. This is also not allowed in current AWS::DynamoDB::Table but is bypassed in Gen2.
In the sandbox mode, we are using the strategy of dropping and recreate table when index change is detected. This is because CreateTable can includes multiple GSIs and calling DeleteTable then CreateTable is much faster than doing update table operation in place.
Still this issue reminds us to make some warnings on not to include too many index updates within one deployment.
For the duplicate execution, I suggest you can try again after 2 hours for the state machine to timeout to see if you can have a successful rollback afterwards

Also a follow up question, could you provide your region for the deployment? The DynamoDB APIs may have different runtimes based on regions.

Region is us-east-1. My understanding is the aim of amplify is to abstract away the implementation challenges. Users will not know this limitation of DDB and are also not aware that a schema change results in index creation. Therefore, I believe it is important to inform the user that certain schema changes will take time (on the Gen2 deployment UI) and trigger automatic retries after CFN or the state machine are timing out. Now, I need to dive very deep into the way Amplify implements things to understand how to fix the stack.

For the duplicate execution, I suggest you can try again after 2 hours for the state machine to timeout to see if you can have a successful rollback afterwards

What exactly should I try again?
You can also reach me on Slack. My alias is carskoch@

I did not find a way to re-run the existing state machine execution so I created a new execution with the same payload. The Lambda that is executed by the state machine returns an error that CloudFormation is not responding to the success message. So, I continued the rollback operation in CloudFormation. It wants to execute a state machine with a specific execution ID which already exist so CloudFormation fails as well. How can I link CloudFormation to the new execution ID of the state machine instead of the old one? Or is there another way to rescue the stack?

Update on this: talked with customer offline and the rollback issue was finally resolved by deleting the state machine and recreate the same one with the same ARN and config.
As for a long term happy path, we need to introduce the WaitCondition into the CFN template to bypass that 1 hour limit, which is a feature for improvement after Gen2 GA.
Will close this issue for now. Please feel free to reopen if there are any unresolved issues.


Use_case_2.py error

roadscene2vec/learning/util/trainer.py", line 40, in init
if self.config.training_configuration["seed"] != None:
AttributeError: 'configuration' object has no attribute 'training_configuration'
pytorch: 1.10.0
torchvision: 0.11.1
cudatoolkit: 11.3.1

We can't reproduce the error ourselves, so we aren't sure what is happening in your training environment. Please share the code and commands you are using as well as some debug/pdb output, like the values contained within self.config and the value of self.config.training_configuration if you can produce it.


Fix the style of the NavBar content wrapper and its customizable children

Currently, the content of the NavBar is wrapped by View so you cannot style the components in it with relative position. To fix this, the default style for the wrapper has changed, and customized styles are also applied to cutomized components. With this PR, you can use render*Button prop with the root scene.

I'm really sorry about missing this PR. Unfortunately I have available time only recently and completed v4 beta based on React Navigation. Feel free to submit PRs for v4 now. I promise I will not miss them again.


Feature Request: "Escape" or any key bind for exit message input box and out from program

I've been back to discordo again to testing the features. It seem already had lot improvement like notification and more.
But, there still a lot of basic stuff which being lost in either by ignorance or is just me which forgot which key bind is for what. This is a highly level of importance, even if reading and edit the config or even check the git itself. not everyone is like to had difficulty to exit (like many people do when try vim for first time, which being fixed by neovim team by setup the tutorial on web too...)
I know this seem not looks like what open-source or linux user supposed to say, but sometimes project like these is too good to be ignore. if somebody found it amazing, it would be a bummer for them to be feel difficult right in the first step...
Some good idea I can give, since IDK golang language in first place.
[] Showing some key bind with simple explain such "{` + a} open message menu"
[] Adding some configuration for exit input, switch from guild channel and message
Hope the best from you, I hope this project would growth greatly...

Thanks for the feedback, @hafizdkren! The Escape key "unfocuses" the input view (*tview.InputView) and sets the focus to the main flex (*tview.MainFlex). Ctrl + C can be used to exit the program. I do agree that the project needs more documentation, feel free to open a PR.


Unable to parse match statements

Hi there.
I ran into an issue with parsing match statements in python. Unlike other languages it does not seem to have a unique Node type for match statements (where languages such as C# and Java have switch statements).
I have been used the playground to see the structure of the tree produced.
You can use the following piece of python code to recreate the problem:
match term:
    case pattern1:
    	print(1)
    case pattern2:
        print(2)
    case pattern3:
        print(3)
    case default:
        print(0)

The resulting tree of parsing the before mentioned code piece looks like this:
[module](https://tree-sitter.github.io/tree-sitter/playground#) [0, 0] - [10, 0]
  [expression_statement](https://tree-sitter.github.io/tree-sitter/playground#) [0, 0] - [1, 5]
    [assignment](https://tree-sitter.github.io/tree-sitter/playground#) [0, 0] - [1, 5]
      left: [identifier](https://tree-sitter.github.io/tree-sitter/playground#) [0, 0] - [0, 5]
      [ERROR](https://tree-sitter.github.io/tree-sitter/playground#) [0, 6] - [0, 10]
        [identifier](https://tree-sitter.github.io/tree-sitter/playground#) [0, 6] - [0, 10]
      type: [type](https://tree-sitter.github.io/tree-sitter/playground#) [1, 1] - [1, 5]
        [identifier](https://tree-sitter.github.io/tree-sitter/playground#) [1, 1] - [1, 5]
  [expression_statement](https://tree-sitter.github.io/tree-sitter/playground#) [1, 6] - [2, 13]
    [assignment](https://tree-sitter.github.io/tree-sitter/playground#) [1, 6] - [2, 13]
      left: [identifier](https://tree-sitter.github.io/tree-sitter/playground#) [1, 6] - [1, 14]
      type: [type](https://tree-sitter.github.io/tree-sitter/playground#) [2, 5] - [2, 13]
        [call](https://tree-sitter.github.io/tree-sitter/playground#) [2, 5] - [2, 13]
          function: [identifier](https://tree-sitter.github.io/tree-sitter/playground#) [2, 5] - [2, 10]
          arguments: [argument_list](https://tree-sitter.github.io/tree-sitter/playground#) [2, 10] - [2, 13]
            [integer](https://tree-sitter.github.io/tree-sitter/playground#) [2, 11] - [2, 12]
  [expression_statement](https://tree-sitter.github.io/tree-sitter/playground#) [3, 4] - [3, 8]
    [identifier](https://tree-sitter.github.io/tree-sitter/playground#) [3, 4] - [3, 8]
  [expression_statement](https://tree-sitter.github.io/tree-sitter/playground#) [3, 9] - [4, 16]
    [assignment](https://tree-sitter.github.io/tree-sitter/playground#) [3, 9] - [4, 16]
      left: [identifier](https://tree-sitter.github.io/tree-sitter/playground#) [3, 9] - [3, 17]
      type: [type](https://tree-sitter.github.io/tree-sitter/playground#) [4, 8] - [4, 16]
        [call](https://tree-sitter.github.io/tree-sitter/playground#) [4, 8] - [4, 16]
          function: [identifier](https://tree-sitter.github.io/tree-sitter/playground#) [4, 8] - [4, 13]
          arguments: [argument_list](https://tree-sitter.github.io/tree-sitter/playground#) [4, 13] - [4, 16]
            [integer](https://tree-sitter.github.io/tree-sitter/playground#) [4, 14] - [4, 15]
  [expression_statement](https://tree-sitter.github.io/tree-sitter/playground#) [5, 4] - [5, 8]
    [identifier](https://tree-sitter.github.io/tree-sitter/playground#) [5, 4] - [5, 8]
  [expression_statement](https://tree-sitter.github.io/tree-sitter/playground#) [5, 9] - [6, 16]
    [assignment](https://tree-sitter.github.io/tree-sitter/playground#) [5, 9] - [6, 16]
      left: [identifier](https://tree-sitter.github.io/tree-sitter/playground#) [5, 9] - [5, 17]
      type: [type](https://tree-sitter.github.io/tree-sitter/playground#) [6, 8] - [6, 16]
        [call](https://tree-sitter.github.io/tree-sitter/playground#) [6, 8] - [6, 16]
          function: [identifier](https://tree-sitter.github.io/tree-sitter/playground#) [6, 8] - [6, 13]
          arguments: [argument_list](https://tree-sitter.github.io/tree-sitter/playground#) [6, 13] - [6, 16]
            [integer](https://tree-sitter.github.io/tree-sitter/playground#) [6, 14] - [6, 15]
  [expression_statement](https://tree-sitter.github.io/tree-sitter/playground#) [7, 4] - [7, 8]
    [identifier](https://tree-sitter.github.io/tree-sitter/playground#) [7, 4] - [7, 8]
  [expression_statement](https://tree-sitter.github.io/tree-sitter/playground#) [7, 9] - [8, 16]
    [assignment](https://tree-sitter.github.io/tree-sitter/playground#) [7, 9] - [8, 16]
      left: [identifier](https://tree-sitter.github.io/tree-sitter/playground#) [7, 9] - [7, 16]
      type: [type](https://tree-sitter.github.io/tree-sitter/playground#) [8, 8] - [8, 16]
        [call](https://tree-sitter.github.io/tree-sitter/playground#) [8, 8] - [8, 16]
          function: [identifier](https://tree-sitter.github.io/tree-sitter/playground#) [8, 8] - [8, 13]
          arguments: [argument_list](https://tree-sitter.github.io/tree-sitter/playground#) [8, 13] - [8, 16]
            [integer](https://tree-sitter.github.io/tree-sitter/playground#) [8, 14] - [8, 15]

Here are some pictures from the playground as well:

Playground seems to be using an old version, this parses fine on master


Thanks.

Currently no plans for that, sorry.


Correctly handle actor abort

Originally reported in https://apify.slack.com/archives/CGZSN9DQC/p1715957828029029.
The user spawned an asyncio task in the actor. When the actor received SIGINT, it didn't clean up the task and the container was left there hanging.
We should either cancel all tasks when the actor is exitting or just trigger a sys.exit after a certain timeout.
Relevant code and JS counterpart

we should put priority on this one, at least implement the configurable timeout after which we kill the process completely, we can leave the wait for bound events (via actor.on) for later if it would be too time consuming.


License Terms?

Hi,
I am interested in (re-)using the gem but there is no license information available. So the question is: How is nenv licensed? :)

Ignore my question -.- Sorry, great tool! :)

Thanks :) File an issue if you have any problems or ideas.


Update vuescan to 9.6.07

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.
[x] The commit message includes the cask’s name and version.

Running script.sh...

>>> brew cask _audit_modified_casks 531eae7747ceca1635fd11c97a6324f516914e89...59271361680308a35834b07645c8602cb625fc3b
==> 1 modified cask: vuescan
==> Downloading https://www.hamrick.com/files/vuex6496.dmg
==> Verifying checksum for Cask vuescan
audit for vuescan: failed
 - only sha256 changed (see: https://github.com/caskroom/homebrew-cask/blob/master/doc/cask_language_reference/stanzas/sha256.md)
Error: audit failed for 1 cask: vuescan


Port suppressMethod etc to Mockito API

From<EMAIL_ADDRESS>on September 14, 2009 08:42:46
do it
Original issue: http://code.google.com/p/powermock/issues/detail?id=166

From<EMAIL_ADDRESS>on September 18, 2009 12:59:56
Status: Fixed


Undoing a block paste operation should reload the clipboard with the un-pasted stuff

It's not uncommon to paste stuff in the wrong place. The first inclination, and most expedient thing to do, is to undo the paste and then paste again in the right place. Currently the clipboard is not reloaded when you undo a paste. It probably should be.

@MAX-786 If you'd work on this issue it would be awesome, as it's an interesting problem.
The task is about making the "undo manager" https://github.com/plone/volto/blob/9027d0475d5a025a935a3c66e30a63de9842c6af/src/components/manage/Form/Form.jsx#L565-L567 also integrate with the "block clipboard" (https://github.com/plone/volto/blob/master/src/components/manage/Form/BlocksToolbar.jsx)
The user story is like this:

as an editor
when I copy some blocks, then I paste the blocks, then I undo the operation with the left-side undo buttons
I want the block clipboard to be restored, so that I can paste the blocks again

Thanks @tiberiuichim, for the guidance, I understood the issue and now I have an idea where to look, I'll soon make the proposal for this (^^)


Streamline the usage of the ResourcesReconciler

Proposed Changes

:broom: Moved inner class ResourcesReconcilerImpl.Builder to ResourcesReconcilerBuilder
:broom: Moved ResourcesReconcilerImpl.builder() to ResourcesReconciler.builder()
:gift: Now ResourcesReconcilerBuilder provides a buildAndListen method which builds directly the ResourcesReconcilerMessageHandler as well

/retest
/hold

/unhold
My bad, I forgot to fix some tests using the old builder method. Now it should be fine


.getAudioManager() isn't independent

I'm not sure if this is a design flaw or intended but when using the audio feature of the bot on multiple servers, it struggles to work out which is which. I'm able to control the music for 1 server from another. Is this intended?

Are you using the latest version's Guild#getAudioManager or maybe an older version that doesn't support multi-voice with JDA#getAudioManager? I haven't had any issues with AMs like that.

I'm using this version: https://github.com/DV8FromTheWorld/JDA/releases/tag/v2.0.0
and this to send audio:
        			audioUrl = new URL("http://url.here/");
        			player = new URLPlayer(event.getJDA(), audioUrl);

        			event.getGuild().getAudioManager().setSendingHandler(player);

        			player.play();```

In theory, if you can retrieve the guild you want to control then you will be able to do whatever you want with it regardless of the guild which the message was sent in (assuming that it's all managed through a command).
However, the snippet you included specifically gets the current Guild's AudioManager, so I don't see how that would fail and use another guild's AM.. Is the rest of your code open source so we can take a look at it? Also, could you join either the Discord API guild or JDA's Guild in order to communicate more efficiently? Thanks.

I joined the JDA guild :) I'm TheEpTic :D

Resolved thanks to @DinosParkour


Generic helper functions for maps & arrays in CCI config

We are seeing some common basic functions that make assertions in config easier.

in_array - for objects like context  which can be a list or single value makes checking match either case.
job_name - since jobs of a worklows can be a single string, or include things like  custom name this uses the right name in either case.

....  Others?

@eddiewebb
For the first part point we have created circleci.utils that has a to_set and to_array helpers.
So suppose you wanted to check if a context was in a worflow's job's context field:
import future.keywords
import data.circleci.utils

prod_is_used = "prod" in utils.to_set(input.workflows.main.jobs[_].context)

For the second point, this would be useful helper!!!! What name would we give it since this pattern of "string literal" | "object of with 1 key to configuration" is used for jobs in workflows, for steps in jobs, and probably elsewhere...
If we made it:
import data.circleci.config

config.get_element_name(input.jobs.example.steps[0])

would that be satisfatory? get_element_name | get_item_name? Any perference?


deepbit bitlc.net blocks not detected by lp

Shares on those two keep rising the last day and half. I did a pull in the meantime but they are still only going up.
Furthermore, in lpworkbench there are few blocks detected as owned by deepbit, but that did not affect shares.
On the other hand, bitclockers shares are reseted - so far it seems correctly...

I found a bug in the LP system. Can you update to the latest and see if it fixes this?

I updated from the repository. After a couple of hours lp detecting is still not working for deepbit and the rest of Prop pools.
Even, the previously working, bitclockers seems suspicious, as it started from 100% and kept growing - though it might be that the percentage was close to 100 so I can am not sure about it.

OK with the latest update it seems that lp is working again.  So far confirmed only on deepbit, but let me run it for a day and I will close the issue if other pools work as well.

UPDATE: So far only deepbit is mined through LP. However I still can not point the finger at bitHopper as there is problem with detecting block owners at bitcoinwatch as well.
It seems that lpworkbench is pulling the owner data from there. Is that right?
I would wait till the situation with block owners is resolved before closing this bug.

OK, it is still not working.
Deepbit is again at 3000+%, out of the others just once hopper switched to bitlc but I believe it had more than one block, as it might be seen in verified blocks in lpworkbench.
The huge negative number still appears constantly as the pool LP delay in lpworkbench. I suspect this might be the reason for bad lp detection.

Ok I'll take a look.

I found a workaround.
lpworkbench has been showing that 80+% of blocks are found by bitparking.net
So, I disabled bitparking for BTC (all others are already disabled) and now lp seems to be working properly for the last few hours. I hope this helps in finding the bug.

Hmmm. I wonder if bitparking is screwing something up. I'll take a look at their LP's.

I'm going to close this issue as it is working but tuning is difficult.


What language to use in the script feature?

What is the language to use for the script feature?

Or just an example script

I think it's C# as that's the language TrollRAT was written in


What is the right way to initialize DB connection pool on the server and access it inside createServerData/createServerAction?

Both createServerData and createServerAction run on the server.
I need to call DB queries from inside createServerData / createServerAction.
Where should I configure server to initialize DB connection and how to pass the server-context with DB connection to  createServerData and createServerAction?

normally you can just create a file called db.ts .. initialize a connection there for the server.. and then import that and use it in inside ur createServerData/Action call.. we will keep the code out of the client bundle

Sorry for rising this question again, but what is the right way of opening and closing db connections on app startup and before hot reload or as a graceful shutdown?
For example in case of TypeORM they do not allow to use models/entities until AppDataSource.initialize() is finished (EntityMetadataNotFoundError: No metadata for "User" was found).
Also in case of any code changes in development mode, it opens more and more database connections without closing the old ones.


Rename Receiver/Subscriber to Listener

Purpose

Rename QueueReceiver, TopicSubscriber, DurableTopicSubscriber to QueueListener, TopicListener, DurableTopicListener

Approach

Rename QueueReceiver, TopicSubscriber, DurableTopicSubscriber to QueueListener, TopicListener, DurableTopicListener

Samples

Updated examples

Remarks

N/A

Check List

[x] Read the Contributing Guide
[ ] Required Balo version update
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[x] Module documentation in Module.md files
[x] Ballerina By Examples

Codecov Report

Merging #15424 into master will decrease coverage by 0.06%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master   #15424      +/-   ##
============================================
- Coverage     22.52%   22.46%   -0.07%
  Complexity     6562     6562
============================================
  Files          1898     1893       -5
  Lines         88680    88558     -122
  Branches      12812    12791      -21
============================================
- Hits          19977    19893      -84
+ Misses        65546    65508      -38
  Partials       3157     3157

Impacted Files
Coverage Δ
Complexity Δ

composer/packages/tracing/src/TraceList.tsx

composer/packages/tracing/src/ToolBar.tsx

composer/packages/tracing/src/DetailView.tsx

composer/packages/tracing/src/TraceLogs.tsx

composer/packages/tracing/src/index.ts

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update e44cbf9...62c3206. Read the comment docs.


[React] Cannot call a class as a function error in production build

GitHub Repo: https://github.com/amanvishnani/firegram
Live URL: https://firegram-aman.web.app/
I get the following error on the production build however not on the Development build. Not sure what is causing this issue.

Can someone please help me out what's the issue here?

@amanvishnani - is your GitHub repo private?

@amanvishnani - is your GitHub repo private?

@GantMan sorry about that, just made it public. Try now.

@GantMan sorry about that, just made it public. Try now.

Couple of notes:
Don't use var here.   It willl hoist and possibly cause issues with your useState
https://github.com/amanvishnani/firegram/blob/a9ac785a6ea2af9d78cd692bfde72b0bb882a007/src/hooks/useNsfw.js#L12
Try to stay away from using var anytime you can, instead use let.
Also, I'm not sure if my hook knowledge is limited, but what's stopping your second useEffect from firing before your first useEffect is complete?
Just a few things I noticed, but I'm not sure why it's calling a class.

Couple of notes:
Don't use var here.   It willl hoist and possibly cause issues with your useState
https://github.com/amanvishnani/firegram/blob/a9ac785a6ea2af9d78cd692bfde72b0bb882a007/src/hooks/useNsfw.js#L12
Try to stay away from using var anytime you can, instead use let.
Also, I'm not sure if my hook knowledge is limited, but what's stopping your second useEffect from firing before your first useEffect is complete?
Just a few things I noticed, but I'm not sure why it's calling a class.

@GantMan the dependency array in the second useEffect tells it to only run when either model or imageElement is changed.

@GantMan the dependency array in the second useEffect tells it to only run when either model or imageElement is changed.

But doesn't that run on the first time setting it?  My useEffect knowledge is always sticky.   Hah, I usually have to fiddle for 10 minutes to get it right :D
Is the issue the model code 100%?  Have you tried switching NSFWJS out with any old object?

But doesn't that run on the first time setting it?  My useEffect knowledge is always sticky.   Hah, I usually have to fiddle for 10 minutes to get it right :D
Is the issue the model code 100%?  Have you tried switching NSFWJS out with any old object?

Yes, although it is called for the initial values which are null and the if-condition will not run the code for the first time.
I have tried with the v2.2.0 only. Did not try old models or previous versions. Not sure what is causing the issue when the build changes from Dev-build to Prod-build.

Yes, although it is called for the initial values which are null and the if-condition will not run the code for the first time.
I have tried with the v2.2.0 only. Did not try old models or previous versions. Not sure what is causing the issue when the build changes from Dev-build to Prod-build.

I just found this:   https://github.com/tensorflow/tfjs/issues/3384
Take a look at the webpack.confi.js adjustment they recommend.

I just found this:   https://github.com/tensorflow/tfjs/issues/3384
Take a look at the webpack.confi.js adjustment they recommend.

Downgrading tfjs to 1.7.4 worked for me. Thanks.

Downgrading tfjs to 1.7.4 worked for me. Thanks.


MVP Sample

Hi,
I would like to know if there are any plans to add an MVP sample to the repository. Thanks in advance!

No plans. What components would you like to see?
ViewModels could be used to act as presenters, but they need a view reference which is almost the whole point of ViewModels (to not have the reference).
LiveData is an observable to make UIs reactive, so basically the opposite of what presenters do.
If you mean Room, then we have one:
https://github.com/googlesamples/android-architecture/tree/dev-todo-mvp-room/

Oh alright then. Thanks for the explanation

@JoseAlcerreca ... In https://developer.android.com/topic/libraries/architecture/lifecycle.html
"If your UI is complex, consider creating a Presenter class to handle UI modifications. This is usually overkill, but might make your UIs easier to test."
If we were to choose not to use databinding, how would we use ViewModel, LiveData if we don't use Presenters? Kindly advise.


Lorien is constantly playing sound

Lorien version:
0.6.0, 0.7.0-dev
OS/device including version:
Operating System: Arch Linux
KDE Plasma Version: 6.1.4
KDE Frameworks Version: 6.5.0
Qt Version: 6.7.2
Kernel Version: 6.10.7-arch1-1 (64-bit)
Graphics Platform: Wayland
Issue description:

Steps to reproduce:

Start the app.

That's a Godot bug, not a Lorien bug

I think you set the audio driver in Godot to a dummy implementation, so that all audio features get functionally disabled. I don't know if that fixes this issue, but i'm looking into it.

@toboil-features Could you try the lastest main branch. Should be fixed now.

@mbrlabs Yes, now it is fixed.


Parse exponent for int/uint if present

Fixes #806

It doesn't look like Office supports opening these files. Closing for now. If desired, open the issue for further discussion.


editor.wordBasedSuggestions shows up last in default settings?

I would expect settings to be grouped together but editor.wordBasedSuggestions shows up last:

Looks like we have different files where settings are contributed from (in this case https://github.com/Microsoft/vscode/blob/master/src/vs/editor/common/modes/supports/suggestSupport.ts#L25) but I think that should not make a difference.

There is a 'order' property on the configuration settings. Editor settings have order 5. So to appear just after the editor settings use 5.1.
@jrieken FYI

wow - I always thought it's by alphabet...


Hide the app from taskbar

Hello Great Job!
I want to ask you how can i completely hide the app from taskbar but still run in background?

Look for Win API, it has nothing to do with the project.


⚠ API - Lens has degraded performance

In cd48f95, API - Lens ($LENS_API_URL) experienced degraded performance:

HTTP code: 502
Response time: 323 ms

Resolved: API - Lens performance has improved in 1d8e7ad after 6 minutes.


Document the relation about quarkus beans and camel components

It is not clear what is the recommended way to use some camel components, i.e. for some messaging related components we can re-use the beans provided by quarkus thus we can leverage the build time optimization such beans can have but it is not clear how / when this applies
Relates to #1128

There is a brief Configuration by convention section now: https://camel.apache.org/camel-quarkus/latest/user-guide/configuration.html#_configuration_by_convention
But how that applies to the individual components should be documented on the individual extension/component pages.


Update README.md

My 20 points were deducted and were not added back to the leaderboard
With respect to this discussion https://github.com/GSSoC24/Contributor/discussions/561#discussioncomment-10288187
Can you please merge this PR and assign label so that I get my points back
Because I checked all the PRs but 20 points are not added
So its a kind request if you can merge this

@sanjay-kv
Please look into this and kindly merge


require namespace before VRG creation #240

if a workload is used for a non-existent namespace on a managed cluster, create it first

Signed-off-by: Travis Janssen<EMAIL_ADDRESS>
Known issue: the logic for verifying that a namespace exists on a managed cluster is housed in drplacementcontrol.go::createVRGManifestWork(), but if the namespace doesn't exist and none of the resources exist when Ramen initializes, drplacementcontrol_controller.go::getVRGsFromManagedClusters() executes first, which will result in Reconcile errors. However, this runs a few times then creates the namespace and those errors are resolved. I couldn't figure out how to generalize this functionality in a way that didn't require the DRPC instance or mwu_util instance and fixed the errors at start. On my test machine, this executed so quickly that I had to search for the errors, but it's probably worth fixing later.

How to easily reproduce the error this patch fixes:

Obtain a clean environment (meaning no minikube instances, no virsh osd pools), then run the following commands:
$ bash ramen/hack/ocm-minikube-ramen.sh
$ bash ramen/hack/ocm-minikube-ramen.sh application_sample_deploy
$ kubectl delete namespace busybox-sample --context=cluster1
$ kubectl config use-context hub
$ make generate; make maniefsts; make; make install; make run-hub

You should notice that since the busybox-sample namespace doesn't exist on cluster1, that VRG creation will fail.

Updated one more time based on feedback above (in particular, the finalizeDRPC comment).
I agree with @BenamarMk that checking VRG MW could be a substitute for a full MCV check on the Namespace, but did not add it to this PR - I added an issue (#298) and a TODO to make sure we don't forget about this. I believe the later comment about deleting the MCV after the namespace's existence is established can addressed at the same time. Otherwise, I think this should be good to go.


Filter nodes with a blocklist when scheduling

What do these changes do?

Implement a blocklist that allows adding and removing and may be useful when scheduling nodes.
Codes associated with reassigning subtasks are included within this PR as well.

Related issue number
Fixes #2166

@vcfgv Thank you for your contribution, could you please open a corresponding issue? Thanks in advance.

Whether a worker is blocked or not should be an internal implementation of Cluster Service. Callers of ClusterAPI do not need to know that detail.
Also note that when some nodes are blocked, callers of watch() methods need to be notified.

To avoid assigning subtasks to certain bands, GlobalSlotManagerActor, AssignerActor and SubtaskQueueingActor are playing critical roles. GlobalSlotManagerActor keeps a set named _blocked_bands to globally mark bands as unavailable. AssignerActor works as the first filter, while the SubtaskQueueingActor follows closely as another filter to ensure previously assigned bands are still available and if not, SubtaskQueueingActor will move queued subtasks to available bands, namely reassigning them.

It is quite messy adding filters in every actor. The queueing actor merely rewrite queues and the assigner merely update its available slots for shuffle nodes (the latter may be removed when shuffle is refined later) when receives changes from a subscribed global slot manager. We do not need to load slots every time when we try to assign nodes. This is expensive.

It is quite messy adding filters in every actor. The queueing actor merely rewrite queues and the assigner merely update its available slots for shuffle nodes (the latter may be removed when shuffle is refined later) when receives changes from a subscribed global slot manager. We do not need to load slots every time when we try to assign nodes. This is expensive.

This may be more compilicated. When we call add_node_to_black_list, we need to ensure later subtasks won't be submitted to the this node, so that we can ensure there won't be any subtasks running in this node and offline this node. But there maybe some subtasks being submited to this node, and we need some way to make those subtasks reassgined to other nodes or know that after we called add_node_to_black_list, there has been some subtasks submitted to the blocked node.
It seems we only need to reassgin non_submitted_ids when we call SubtaskQueueingActor#submit_subtasks. Since GlobalSlotManagerActor#add_node_to_black_list and GlobalSlotManagerActor#apply_subtask_slots is exclusive, if GlobalSlotManagerActor#apply_subtask_slots got executed first, we can get used band from _band_used_slots; If GlobalSlotManagerActor#add_node_to_black_list got executed first, the subtask will be in non_submitted_ids and we can remote those subtasks and add_subtasks again. The AssignerActor#assign_subtasks can reassign those subtasks.

It is quite messy adding filters in every actor. The queueing actor merely rewrite queues and the assigner merely update its available slots for shuffle nodes (the latter may be removed when shuffle is refined later) when receives changes from a subscribed global slot manager. We do not need to load slots every time when we try to assign nodes. This is expensive.

This may be more compilicated. When we call add_node_to_black_list, we need to ensure later subtasks won't be submitted to the this node, so that we can ensure there won't be any subtasks running in this node and offline this node. But there maybe some subtasks being submited to this node, and we need some way to make those subtasks reassgined to other nodes or know that after we called add_node_to_black_list, there has been some subtasks submitted to the blocked node.
It seems we only need to reassgin non_submitted_ids when we call SubtaskQueueingActor#submit_subtasks. Since GlobalSlotManagerActor#add_node_to_black_list and GlobalSlotManagerActor#apply_subtask_slots is exclusive, if GlobalSlotManagerActor#apply_subtask_slots got executed first, we can get used band from _band_used_slots; If GlobalSlotManagerActor#add_node_to_black_list got executed first, the subtask will be in non_submitted_ids and we can remote those subtasks and add_subtasks again. The AssignerActor#assign_subtasks can reassign those subtasks.

Maybe a better solution is stopping handling blocking requests in scheduling service. Try implement node_state enum in cluster service and subscribe changes in other services may be a cleaner implementation.

It is quite messy adding filters in every actor. The queueing actor merely rewrite queues and the assigner merely update its available slots for shuffle nodes (the latter may be removed when shuffle is refined later) when receives changes from a subscribed global slot manager. We do not need to load slots every time when we try to assign nodes. This is expensive.

To put it simple, there's only one actual filter in assigner while queueing actor indeed rewrites queues according to the information, band_is_blocked, provided by GlobalSlotManagerActor and GlobalSlotManagerActor makes the final check in apply_subtask_slots before subtasks are exactly submitted. Future commits will include the changes mentioned above

try to watch GlobalSlotManagerActor to get latest available bands.

so as to mitigate the overhead when loading available bands before assignment.

It seems we only need to reassign non_submitted_ids when we call SubtaskQueueingActor#submit_subtasks. Since GlobalSlotManagerActor#add_node_to_black_list and GlobalSlotManagerActor#apply_subtask_slots is exclusive, if GlobalSlotManagerActor#apply_subtask_slots got executed first, we can get used band from _band_used_slots; If GlobalSlotManagerActor#add_node_to_black_list got executed first, the subtask will be in non_submitted_ids and we can remote those subtasks and add_subtasks again. The AssignerActor#assign_subtasks can reassign those subtasks.

Generally, modifications within queueing actor are merely about moving subtasks from task_queue of blocked bands to another task_queue, which utilizes the original pattern queueing actor runs. Furthermore, queueing actor rewrites queues and GlobalSlotManagerActor makes the final check and if necessary, notifies queueing actor to rewrite queues by returning empty submitted_ids.

Noticed that this is your first PR, congrats and looking forward to more contributions from you!


Use ROM memcpy and friends over compiler-builtins function

nm examples/target/xtensa-esp32s3-none-elf/release/gpio_interrupt | grep memcpy shows 0x400011f4 on esp32s3, so it looks like this is correctly overriding the linkage.
@bjoernQ maybe you were using PROVIDE which I think only "fills" in the symbol if its missing.
I think the last time memcpy from ROM was enabled, bad things with esp-wifi happened, @bjoernQ do you recall this, and would you mind testing?

Found the issue: https://github.com/esp-rs/esp-wifi/issues/245
Hopefully just the driver makes assumptions which we can fix - or maybe it's just working now

So ... everything works except ESP32-S2 BUT it also doesn't work with esp-hal 0.16.0
It worked with esp-hal 6a663f8b1a6bd273cd41d49e2096b8c4906e9da4 however 😲
Oh I see: 0240e2b59751e11d860f392de604159619601f42 breaks it

cc @playfulFence

Just double checked: I can make esp-wifi work with this by locally commenting out crate::soc::trng::ensure_randomness();
So, it's definitely not a problem of this PR

Just double checked: I can make esp-wifi work with this by locally commenting out crate::soc::trng::ensure_randomness();
So it's definitely not a problem of this PR


Separate GH actions definition files for components

Fixes #

Proposed Changes

Separate GH actions definition files for components

Release Note

Docs

/test unit-tests_eventing-kafka-broker_main

/test upgrade-tests_eventing-kafka-broker_main

/test unit-tests_eventing-kafka-broker_main

/test unit-tests_eventing-kafka-broker_main
/test upgrade-tests_eventing-kafka-broker_main
/test channel-integration-tests-sasl-ssl_eventing-kafka-broker_main

/test channel-integration-tests-sasl-plain_eventing-kafka-broker_main
/test integration-tests_eventing-kafka-broker_main

/test integration-tests_eventing-kafka-broker_main

/test integration-tests_eventing-kafka-broker_main

Can we somehow reduce duplication?
Adding a new k8s version, and upgrading ko or go would require lots of changes with this.

I reduce code duplication with this PR by eliminating the strange "exclude" cases.
Now that we have more cases with namespaced broker, we will add even more things there if we keep this structure.
I understand your point though. There is a lot of things that can be shared. I did some reading here already: https://docs.github.com/en/actions/using-workflows/reusing-workflows
However, my preference would be doing this as a copy paste and then extracting a reusable workflow because:

Reusing the workflows is a lot of work and is complex. I don't want to waste time on that optimization part of the namespaced broker work.
It is nicer to have a copy-paste solution working, then extracting common parts out of that. That way we would have the chance to actually compare if the reused workflow is doing what we actually want.

Since GH actions are mostly a signal to see if we're still working with all k8s supported versions, given that the only annoying component is the channel auth scenarios and given the plans to support auth options on a per channel basis, I wonder if should just drop channel auth scenarios (maybe leaving only the popular SASL_SSL) from GH actions [1]. We will still test those in prow, so we should be good with coverage.
https://github.com/knative-sandbox/eventing-kafka-broker/blob/89b4bb7ac22a1baa62eab29ed03286de0404ccbe/.github/workflows/kind-e2e.yaml#L27-L31

Since GH actions are mostly a signal to see if we're still working with all k8s supported versions, given that the only annoying component is the channel auth scenarios and given the plans to support auth options on a per channel basis, I wonder if should just drop channel auth scenarios (maybe leaving only the popular SASL_SSL) from GH actions [1]. We will still test those in prow, so we should be good with coverage.

If we're cool skipping those, then I would be happy to just chop things off.
I reverted my changes and pushed a new commit removing the auth tests for channel.

/unhold
Getting irrelevant error:
Internal error occurred: failed calling webhook "defaulting.webhook.kafka.eventing.knative.dev": failed to call webhook: Post "[https://kafka-webhook-eventing.knative-eventing.svc:443/defaulting?timeout=2s](https://kafka-webhook-eventing.knative-eventing.svc/defaulting?timeout=2s)": dial tcp <IP_ADDRESS>:443: connect: connection refused


Crashes when no baseUrl provided in tsconfig

Since Typescript 4.1 we can configure aliases without providing baseUrl https://github.com/microsoft/TypeScript/issues/31869
But alias-hq is throwing TypeError [ERR_INVALID_ARG_TYPE]: The "to" argument must be of type string. Received undefined when loading tsconfig.
It seems to me that the problem is with this line https://github.com/davestewart/alias-hq/blob/19309203d65893dab77c2d71e1fa26a16e8034ad/src/index.js#L169

Cool. Thanks for the info.
I'm looking at getting all my outstanding OSS tickets done by the end of January.
Without looking at the code, I guess the fix is to default to "" for missing baseUrl ?

Without looking at the code, I guess the fix is to default to "" for missing baseUrl ?

Yeah, I'm pretty sure it'll work

OK, fixed, and 5.3.1 should be on NPM now.


Cow: Watch izho.kz

Cow requests the watch of the watch_keyword izho\.kz. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

izho\.kz has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


Add full conversion script

[x] edit segmentation metadata
[x] time alignment

stub here

@alessandratrapani can you fix these?

@alessandratrapani can you fix these?

I fixed the first three by updating the session and subject metadata.
For the last two I opened an issue because I found out the timestamps are NaNs --> I will resolve this in another PR


REF_CODE_REFACTOR: tanh

Refactoring the reference code for tanh operator.
BUG=refactoring existing code, and #216 and #217

I just realized that tanh needs to be ported again from TfLite to TFLM.
https://github.com/tensorflow/tensorflow/pull/48052#pullrequestreview-642691645
The TFLM team will figure out how to get this done this week or next.

@advaitjain Any thoughts on this? FWIW I think keeping tanh in its own file and not putting it in activations.cc makes sense - some targets might want to optimize tanh without dealing with other activation functions.

Closing old PR. Let's reopen if needed.


Resize maintaining aspect ratio

Dear mmclassification developers.
I want to resize an image in the pipeline  by resizing the bigger side and adapting the smaller one maintaining the aspect ratio of the image, but it seems that this behavior is not possible (-1, 224)?
Am I missing something?
Thanks in advance

use Resize((224, -1)), refer to the docstring

Right, the Resize pipeline only supports resizing the shorter side and adapting the longer side.
So is this your need? If so, please reply to me and we will support it in the future. Moreover, you can implement it and contribute to this repo, and it's really helpful for us.

Similar to mmdetection, it would be interesting to resize an image to a desired size (e.g 224, 224) whilst maintaining aspect ratio by adding black border. That would be a nice feature.

yes , @mzr1996   when I set the resizing configuration to (-1, 224) for example, it reports the resized image size in a batch not consistent error , how to solve it? I think it is needed the transformation in maskrcnn in mmdet.

@Charlyo yes right,have you implemented it?

I would rather see the 2nd one done (2.). However, if you think it through, the first option will already be included in the second one if done properly.


Draft: Upgrade to v0.4.0

Description
Updated arkworks-rs dependencies to v0.4.0.

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against correct branch (master)
[ ] Linked to Github issue with discussion and accepted design OR have an explanation in the PR that describes this work.
[ ] Wrote unit tests
[ ] Updated relevant documentation in the code
[ ] Added a relevant changelog entry to the Pending section in CHANGELOG.md
[ ] Re-reviewed Files changed in the Github PR explorer

@Pratyush Should I bother implementing CryptographicSponge for the Fiat-Shamir hash function found in rng or should I rip this all out in favour of Poseidon?

Currently blocked by arkworks-rs/poly-commit/pull/122

@Pratyush Should I bother implementing CryptographicSponge for the Fiat-Shamir hash function found in rng or should I rip this all out in favour of Poseidon?
Edit: I see something similar is already in PR. Maybe I can commandeer that PR. I will go talk to @vlopes11.

Temporarily implementing FS hashing using the PoseidonSponge with the same default initialization as used in the tests for crypto-primitives.

Any updates on this? I am ready to take any necessary steps to make it ready to merge. @Pratyush @mmagician

Any updates on this? I am ready to take any necessary steps to make it ready to merge. @Pratyush @mmagician

Go right ahead!


Prepare the repo for codecov.io representation

What this PR does / Why we need it?
Prepare kite for codecov.io
Which Jira issue(s) does this PR fix?
https://issues.redhat.com/browse/OSD-15457

Need approval of the PR : [openshift/release/pull/37072] to retest this PR.

/retest

/hold

/test coverage

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@b5fb50b). Click here to learn what that means.
The diff coverage is n/a.

Additional details and impacted files

@@           Coverage Diff           @@
##             main     #107   +/-   ##
=======================================
  Coverage        ?   15.97%
=======================================
  Files           ?       19
  Lines           ?     1127
  Branches        ?        0
=======================================
  Hits            ?      180
  Misses          ?      927
  Partials        ?       20

/lgtm
/approve

/unhold


Send an email when a flight is seen,

Add the ability to send the user an email whenever a flight in the flight notification list has been seen.

This will be added in a future release at the moment AboveTustin support is the priority when it comes to notifications.

This has been added to my next gen portal TODO list. I am going to close this issue due to the fact that In the near future the portal will reside in it's own repository. The new portal is a total rewrite and totally different creature making most all portal issues posted here invalid.


Fix some standard headers missed in the last PR.

Make absl::Status that is to be returned non-const, so that the compiler can apply move.
Remove an unnecessary double-copy of a ostream string.

Codecov Report
Attention: 1 lines in your changes are missing coverage. Please review.

Comparison is base (470e0b9) 92.85% compared to head (e75c53d) 92.85%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2020      +/-   ##
==========================================
- Coverage   92.85%   92.85%   -0.01%
==========================================
  Files         357      357
  Lines       26399    26397       -2
==========================================
- Hits        24512    24510       -2
  Misses       1887     1887

Files
Coverage Δ

verilog/analysis/symbol_table.cc
98.27% <100.00%> (-0.01%)
:arrow_down:

verilog/analysis/verilog_project.cc
85.47% <100.00%> (ø)

verilog/analysis/verilog_linter.cc
93.85% <50.00%> (-0.04%)
:arrow_down:

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Mocking functions contained in blueprints

Both  in http://flask.pocoo.org/docs/1.0/testing/ and http://flask.pocoo.org/docs/1.0/blueprints/
there's not much said about Blueprint and unittesting.
Let's say that the project is organized such as:
myapp/
  __init__.py
  other_stuff.py
  myblueprint/
    __init__.py
    utils.py
tests/
  __init__.py
  some_unit_tests.py

In myapp/__init__.py, we register the blueprint
from myblueprint import myblueprint
app.register_blueprint(myblueprint)

In utils.py, we import do_amazing from other_stuff.py.
Then for mocking do_amazing, we usually import it in the context of utils.py. This is done by something like:
with patch('myapp.myblueprint.utils.do_amazing') as mock_amazing:
    # More stuff and test.

When there is no blueprint, this is working well.
As soon as myblueprint is a Blueprint object we end up having an error as soon as we hit the patch context.
AttributeError: 'Blueprint' object has no attribute 'utils'
If we print in the test before the patch.
        print 'myapp', myapp
        print 'myapp.myblueprint', myapp.myblueprint
        print 'myapp.myblueprint.utils', myapp.myblueprint.utils

We get:
myapp <module 'myapp' from '/Users/well/code/project/myapp/__init__.pyc'>
myapp.myblueprint <flask.blueprints.Blueprint object at 0x108847450>
ERROR

I still wonder if

it is the ambiguity of using the same name for folder and blueprint keywords
it is a limitation of the Mock library when patching.
it is a limitation of Blueprints themselves.

But it would be probably good to have something in the documentation under Blueprints or Testing addressing either the limitations or a minimal example of a test scenario for Blueprint cases.

Blueprints do absolutely nothing special in this (or most) regards. They're just regular Python objects in regular Python modules. There are no limitations, and testing them looks no different than testing anything else. The Flask tutorial does go through blueprints as well as testing. This appears to be an issue with your code, not Flask's code.
Please use Stack Overflow for questions about your own code. This tracker is for issues related to the project itself. Be sure to include a minimal, complete, and verifiable example.

yes the answer to this question is
do not name the blueprint, the directory and module name the same. That will save a lot of headaches.


Fixed compression middleware no gzipping client contents and added debounce + history to client location hash on Playground website

This pull request contains two things.
First, on the client server, the compression() middleware was defined below the express static middleware definitions which means none of the static files were being sent gzipped. This can be shown in these screenshots which shows the file size and the response headers (notice how big the file sizes are and there is no gzip in the response header):

Compared to these screenshots which show the significantly reduced file size as well as the gzip header being present:

Another thing that I added was the ability for a user to use their back button as a history, and when you press back, it actually reverts your code back to what it was at that time. To make this not so cumbersome, I added a debounce every 1sec to write to the URL hash instead of it writing to the URL hash every key stroke.
Please let me know if there's anything I should adjust.

@josephsavona I implemented a custom debounce that is only about a dozen lines long. There also was an issue with the hash not setting on the code editor like you asked, I was mistaken. That has been fixed. It works as expected now! Let me know if there's anything else you'd like.

@josephsavona I wrapped that setValue in a check for location.hash like you asked.

Thanks!


Disable automatic device switching if user doesn't follow the system default device

To unblock BMO 1735201 and BMO 1238038, we should disable automatic device switching by default unless users ask to follow the system default device. That should be the default behavior in Firefox.

To clarify a bit more, we should only switch devices automatically when user asks to use the system default device. Using the system default means that the users pass a NULL cubeb_devid in cubeb_stream_init.
https://github.com/mozilla/cubeb/blob/5a2a20c6055d26e0a30fae8f1cf6f6cb975c5c97/include/cubeb/cubeb.h#L524
https://github.com/mozilla/cubeb/blob/5a2a20c6055d26e0a30fae8f1cf6f6cb975c5c97/include/cubeb/cubeb.h#L531
If users pass a non-NULL cubeb_devid, then it's no the default device, even if the device happens to be the current system default device. User must pass NULL explicitly to ask following the system default.
In brief, switching device or not can be summarized into the following situations:
For input stream:

device
unplug input device
unplug output device
default input change
default output change

default
Yes
N/A
Yes
N/A

non-default
No
N/A
No
N / A

For output stream:

device
unplug input device
unplug output device
default input change
default output change

default
N/A
Yes
N/A
Yes

non-default
N/A
No
N/A
No

For duplex stream:

device
unplug input device
unplug output device
default input change
default output change

default input, default output
Yes
Yes
Yes
Yes

default input, non-default output
Yes
No
Yes
No

non-default input, default output
No
Yes
No
Yes

non-default input, non-default output
No
No
No
No

I think it's a good time to revisit #167 again. I believe the WebRTC spec allow users to select the output device now: https://webrtc.github.io/samples/src/content/devices/input-output/, and Chrome has implemented that but we haven't. We should check the WebRTC spec and think how we should handle the device-switching policy in cubeb.

I think it's a good time to revisit #167 again. I believe the WebRTC spec allow users to select the output device now: https://webrtc.github.io/samples/src/content/devices/input-output/, and Chrome has implemented that but we haven't.

@ChunMinChang,
Looking at the WebRTC link that you provided, I can confirm that I am able to switch input and output devices in Chromium, but not in Firefox.  There are some related Mozilla bugs that could be resolved with this implementation as well:
https://bugzilla.mozilla.org/show_bug.cgi?id=1650131
https://bugzilla.mozilla.org/show_bug.cgi?id=1716249
Is there any roadmap tracking the progress of implementing this WebRTC specification in Firefox that we can vote on and/or contribute to?

Firefox only shows the 'default' input source:

Chromium shows all four available input sources:


Github Enterprise

Great VS github extension tool. A possible future idea would be to extend extension tool to github enterprise, could add URL option to point directly to repos located on internal servers.

Excellent idea. As soon as I add a settings page for the extension, I will do this.

Mee too looking forward to this feature

+1

+1, as I haven't found anything similar for use with VS and GitHub Enterprise.

+1


Add keyvault applet

There should be a keyvault applet used for all key storage, it shouldn't be in account-sys.
keyvault applet should expose queries like, "getNewKeyPair," that account-sys can call when users try to generate a new keypair.
As seen in the diagram here
https://github.com/gofractally/psibase/blob/main/doc/diagrams/invite-new-user.md
This architecture will eventually allow us to easily replace the keyvault applet with something else, maybe hardware encrypted storage.

Closing because applets are deprecated. However we will (and do as of https://github.com/gofractally/psibase/pull/645) have a keyvault plugin (More precisely, it's an auth plugin with a keyvault interface).


Update aes256_ctr_drbg.py

Use cryptodome instead of crypto as per the instructions in requirements.txt otherwise an error will always occur requesting the installation of pycryptodome

This doesn't seem right to me... I import AES in the following way:
>>> from Crypto.Cipher import AES
>>> AES
<module 'Crypto.Cipher.AES' from '/Users/Jack/Library/Python/3.12/lib/python/site-packages/Crypto/Cipher/AES.py'>

and your example:
>>> from Cryptodome.Cipher import AES
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'Cryptodome'

https://pycryptodome.readthedocs.io/en/latest/src/cipher/aes.html

That is weird, I get the exact opposite. It could be a conflict since I have both or it could be because my Crypto folder is lowercase!
crypt

OK so the difference is between:
pip install pycryptodome

Which uses Crypto and
pip install pycryptodomex

Which uses Cryptodome
https://github.com/Legrandin/pycryptodome
I'm wondering whether I should simply implement AES myself and remove this dependency!

That makes sense. I don't think there is a need for that if you are focused on other more important parts for now. Maybe just mention this in the README file.
Cheers for the work though, great implementation.

I'm kind of "finished" with kyber/ml-kem now that the KAT vectors pass, so adding an AES function into the drbg module might be a fun exercise.
Thanks for making the PR though and let me know if there's anything else I can help with.

Maybe try look into doing the pswoosh lattice based in python! I would love to do it, but I haven't got enough experience yet.
https://github.com/MQuaresma/pswoosh
Cheers!!

That's a whole other project, but it indeed would be interesting to work on at some point. You should try and implement it to get experience, I had no lattice experience either before writing this code :)


Need for a "" component.

Material Example

<Button size="tiny" shape="curved" bgColour="someColour" textColour="someColour">
    Some text
</Button>


Cannot Detect BlueStacks 4 (Nougat) on Mac OS

The detection works on BlueStacks 4 for windows. However doesnt work for OSX

same here


maintain order between -ve and +ve number

This commits make the -ve number appear first
in the order before the +ve number. Further,
the value order is preserved too (i.e., -1000
appear before -100 and -90 appears before 10,
and so on)
Signed-off-by: senthil<EMAIL_ADDRESS>

There is a problem with this approach:
func EncodeReverseOrderVarUint64(n uint64) string {
	n = math.MaxUint64 - n
        ...
}

means that small negative numbers  -1 are represented as big numbers math.MaxUint64-1.
This kind of defeats the purpose of var-int, that assumes small (absolute) numbers are much more prevalent than large ones.
The approach represented by this article does not have that. Instead, when you encode the digits of a negative number, you flip the index into the hex table. So, for positive number represented as an hex without leading zeroes (e.g. 6e = 110 ):
Nd | hex-digits
where Nd is the hex-digit that represents the number of hex-digits. For an int64, it is 0-8.
Thus:
encode( 6e) = 26e
encode( 46e) = 346e
For a negative number in hex format (e.g -6e = -110)
'-' | flip(Nd) | flip(hex-digits)
where flip(hex-digit) is just a mapping
0 -> f
1 -> e
2 -> d
3 -> c
4 -> b
5 -> a
6 -> 9
7 -> 8
8 -> 7
... etc,
i.e. looking into the hexTable with 15-index.
Note that '-' is smaller than the smallest Nd for positive numbers, '0'. Thus:

encode( -6e ) = -d91
encode( -5e ) = -da1

I think it would be better to have single exported method
  func EncodeVarInt64(n int64) string

and test that directly, rather than switch between EncodeReverseOrderVarUint64 and EncodeOrderVarUint64 according to the sign of the incoming int64.

In addition, I think in
enum IndexAttributeType {
  NUMBER = 0;
  STRING = 1;
  BOOLEAN = 2;
}

should be changed NUMBER to INT64. This way, we can later easily introduce DOUBLE (or FLOAT), as described here.

There is a problem with this approach:
func EncodeReverseOrderVarUint64(n uint64) string {
	n = math.MaxUint64 - n
        ...
}

means that small negative numbers -1 are represented as big numbers math.MaxUint64-1. This kind of defeats the purpose of var-int, that assumes small (absolute) numbers are much more prevalent than large ones.

We have used this mechanism in Fabric. Hence, I prefer to use it. The word VarInt can be removed as we are anyway using extra character for each non-empty byte. Hence, I am not going to change this encoding scheme.

In addition, I think in
enum IndexAttributeType {
  NUMBER = 0;
  STRING = 1;
  BOOLEAN = 2;
}

NUMBER should be changed to INT64. This way, we can later easily introduce DOUBLE (or FLOAT), as described here.

In addition, I think in
enum IndexAttributeType {
  NUMBER = 0;
  STRING = 1;
  BOOLEAN = 2;
}

NUMBER should be changed to INT64. This way, we can later easily introduce DOUBLE (or FLOAT), as described here.

Unrelated to this PR. Will be fixed separately.


Serial console not working with GRUB boot encryption

Passing --enable-serial-console enables administering the system via serial console. However, it’s currently not possible to do GRUB boot encryption password entry via serial console. There seems to be some history of this not working right:

https://bugzilla.redhat.com/show_bug.cgi?id=1464741
https://github.com/dracutdevs/dracut/issues/248
https://github.com/gsauthof/dracut-serial

Certainly, it seems broken on VirtualBox with serial console configured. Serial console bootup works ok on VirtualBox with the same configuration using leahneukirchen/hrmpf, the main difference being the presence of GRUB boot encryption here.
It’s not entirely implausible this is being caused by a quirk of VirtualBox — perhaps VirtualBox’s serial console implementation demands strange kernel drivers. Unfortunately, I don’t foresee myself being in a position to test this with physical hardware for quite some time. The --enable-serial-console feature may be of limited use for now, though I’d be happy to be proven wrong by real world testing.

In testing, the serial console works post–GRUB boot encryption password entry. It just takes running VNC and a serial console simultaneously. Use VNC to enter the GRUB boot encryption password, connect the serial console, and reboot. Strangely, the serial console begins to function after the reboot command is issued. The serial console then cuts out while the GRUB boot encryption password entry occurs — accomplishable again via VNC — and then it cuts back in again right afterwards.

Update: the problem is identical on Archvault with mkinitcpio. The same gap in serial console I/O appears at the GRUB boot encryption password entry stage. Afterwards, all is fine. Which rules out dracut it would seem.
I’ve spent many hours devouring every bit of information available on the open internet on this matter. I can find a grand total of one poster anywhere who at least claims to have gotten this to work (five years ago). Sadly, the blog post referenced no longer exists.


Setup Web Font din-2014 and a fallback

See https://www.hlx.live/developer/font-fallback

Fallback is now setup.
We should also consider self-hosting the fonts for faster delivery.

fixed, https://main--24life--hlxsites.hlx.page/styles/fonts.css cache was not flushed on cdn


Clean up STRchive scripts

Not yet ready for review
The goals of this PR are:

[x] Incorporate fix from #92 (need to merge into a different branch so it gets included in the upcoming STRchive v2)
[x] Rename all scripts for clarity and consistency

[x] make_catalog.py -> make-catalog.py
[x] AutomatedLiterature.R -> get-literature.py (see #84)
[x] run_manubot.sh -> run-manubot.sh

[x] Delete scripts we no longer need:

[x] clean_refs.py
[x] update_database.py (useful content will be incorporated into check-loci.py)
[x] reftogeneorientation.py (useful content will be incorporated into check-loci.py)

[x] Add a "linting" script for STRchive-database.json: check-loci.py
[x] Extend the functionality of make-catalog.py to also generate arbitrary extended BED files
[x] Update snakefile to match
[ ] Add some documentation

Is it okay to delete data/STRchive_literature_PMID.json? I think this is no longer used

Sample output of:
python make-catalog.py --format bed -g hg38 ../data/STRchive-database.json output.bed
#chrom	start	stop	id	gene	pathogenic_motif_reference_orientation	pathogenic_min	inheritance	disease
chr1	1435798	1435818	HMNR7_VWA1	VWA1	GGCGCGGAGC	1	AR	Neuronopathy, distal hereditary motor, autosomal recessive 7
chr1	57367044	57367125	SCA37_DAB1	DAB1	GAAAT	31	AD	Spinocerebellar Ataxia Type 37
chr1	94418422	94418444	OPDM_ABCD3	ABCD3	GCC	118	AD	Oculopharyngodistal myopathy
chr1	149390803	149390842	NIID_NOTCH2NLC	NOTCH2NLC	GGC	66	AD	Neuronal intranuclear inclusion disease, Alzheimer disease and parkinsonism phenotype

Are these reasonable default columns?

Ready for review.
Remaining questions:

Can scripts/plots.R be removed?
Is it okay to delete data/STRchive_literature_PMID.json? I think this is no longer used. Any other files along these lines that are obsolete?
Should we tidy up the data directory with additional subdirectories?
Does the config for Snakemake need to be in the data directory? Suggest moving it to scripts.
Should the snakemake command be reconfigured to run from the top-level directory? Might make it a bit easier.
I'm not sure what to do about the biomaRt install issue (see scripts/README.md). It's going to make automation tricky.

The R script AutomatedLiterature.R is still necessary I believe, the python script just handles the output.

oh yeah and we can move the snakemake config file and change the relative paths, I think that makes sense

I don't think I understand the conda/automated problem. can we make an R script specific yaml for the snakemake rule? would that help?

Just briefly looked at this, but weren't we going to rename "database" to "loci"? Other than that, glad to see all the file names are consistent!

The R script AutomatedLiterature.R is still necessary I believe, the python script just handles the output.

Don't worry, it's still there. I just renamed it to get-literature.R for consistency.

definitely can delete the PMID.json. let me see if I can figure out how to make biomart less annoying, but could maybe just run install within the R script?

Okay, I'll do that for now. It will just make it take longer to run because the install is slow. For some reason that is the only thing I can't get conda to install.

oh yeah and we can move the snakemake config file and change the relative paths, I think that makes sense

Shall I add that to this PR?

@vincerubinetti

Just briefly looked at this, but weren't we going to rename "database" to "loci"? Other than that, glad to see all the file names are consistent!

I'm happy to do that, but I just didn't want to break all your stuff. Can you please show me where it's defined for all the web stuff?

the .py suffix above confused me but I get it now 2. Lit 3. Sure!

Get Outlook for iOShttps://aka.ms/o0ukef

From: Harriet Dashnow @.>
Sent: Saturday, November 30, 2024 10:24:08 AM
To: dashnowlab/STRchive @.>
Cc: laurelhiatt @.>; Review requested @.>
Subject: Re: [dashnowlab/STRchive] Clean up STRchive scripts (PR #93)
The R script AutomatedLiterature.R is still necessary I believe, the python script just handles the output.
Don't worry, it's still there. I just renamed it to get-literature.R for consistency.
definitely can delete the PMID.json. let me see if I can figure out how to make biomart less annoying, but could maybe just run install within the R script?
Okay, I'll do that for now. It will just make it take longer to run because the install is slow. For some reason that is the only thing I can't get conda to install.
oh yeah and we can move the snakemake config file and change the relative paths, I think that makes sense
Shall I add that to this PR?
—
Reply to this email directly, view it on GitHubhttps://github.com/dashnowlab/STRchive/pull/93#issuecomment-2509080607, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AULUPMGB2YFRUXU3QQXVU532DHYDRAVCNFSM6AAAAABSVUMUK2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKMBZGA4DANRQG4.
You are receiving this because your review was requested.Message ID: @.***>

the .py suffix above confused me but I get it now 2. Lit 3. Sure! Get Outlook for iOShttps://aka.ms/o0ukef

Oops! Typo in my comment. It's still R. Sory @laurelhiatt

I’ve never made a typo before in my life so I can’t imagine how this happened :/
Get Outlook for iOShttps://aka.ms/o0ukef

From: Harriet Dashnow @.>
Sent: Saturday, November 30, 2024 10:27:16 AM
To: dashnowlab/STRchive @.>
Cc: laurelhiatt @.>; Mention @.>
Subject: Re: [dashnowlab/STRchive] Clean up STRchive scripts (PR #93)

the .py suffix above confused me but I get it now 2. Lit 3. Sure! Get Outlook for iOShttps://aka.ms/o0ukef

Oops! Typo in my comment. It's still R. Sorry @laurelhiatthttps://github.com/laurelhiatt
—
Reply to this email directly, view it on GitHubhttps://github.com/dashnowlab/STRchive/pull/93#issuecomment-2509081427, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AULUPMF2IHFJHDFYUWR7IZ32DHYPJAVCNFSM6AAAAABSVUMUK2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKMBZGA4DCNBSG4.
You are receiving this because you were mentioned.Message ID: @.***>

There's a few places in /site where I import STRchive-database.json (and other json files). If you just rename them there too with a ctrl+f for the whole repo,. it should work.


Don't panic on UnwrapAsertoError for ds0 errors

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 3 (33.33%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.03%) to 13.379%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

cerr/errors.go
1
3
33.33%

Totals

Change from base Build<PHONE_NUMBER>:
0.03%

Covered Lines:
272

Relevant Lines:
2033

💛  - Coveralls


Map Reporting

PLP looks like they will be using the map feature for most or all of their projects.
It would be useful for them to have reports and or the ability to print out maps.

Ability to print maps should be possible -- see the CECDSS app


There is no prompt message for the JS package

Type: Bug
There is no prompt message for the JS package,i disabled all extensions t.the problem is similar to issues/122214

VS Code version: Code 1.78.2 (b3e4e68a0bc097f0ae7907b217c1119af9e03435, 2023-05-10T14:44:45.204Z)
OS version: Darwin x64 21.6.0
Modes:
Sandboxed: No

We closed this issue because it is a question about using VS Code rather than an issue or feature request. Please search for help on StackOverflow, where the community has already answered thousands of similar questions. You may find their guide on asking a new question helpful if your question has not already been asked. See also our issue reporting guidelines.
Happy Coding!


Script to dump user data for GDPR purposes.

data.zip
I have it dump into separate files roughly per-table.

data.zip

Good username


New macro for named JSON convertor generation

This patch adds 4 new NLOHMANN_DEFINE_TYPE_<***>_WITH_NAMES macros. They behave the same way as the ones that are there, but require explicit JSON names. Useful for the situation when the fields in the class are following the naming convention that you do not want to expose to JSON, e.g.
    class address {
      private:
        std::string m_street;
        int m_housenumber;
        int m_postcode;

      public:
        NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_NAMES(address, "street", m_street, "housenumber", m_housenumber, "postcode", m_postcode)
    };

or if the name in JSON cannot be used as the field name because it is reserved, e.g.
    struct weird {
        std::string static_comp;
        std::string class_type;
        std::string public_field;
    };
    NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_NAMES(weird, "static", static_comp, "class", class_type, "public", public_field)

Also, this patch includes the unit tests for the new macros, and the update for the README to describe the new and existing macros better.

Pull request checklist
Read the Contribution Guidelines for detailed information.

[x]  Changes are described in the pull request, or an existing issue is referenced.
[x]  The test suite compiles and runs without error.
[x]  Code coverage is 100%. Test cases can be added by editing the test suite.
[x]  The source code is amalgamated; that is, after making changes to the sources in the include/nlohmann directory, run make amalgamate to create the single-header files single_include/nlohmann/json.hpp and single_include/nlohmann/json_fwd.hpp. The whole process is described here.

coverage: 100.0%. remained the same when pulling 0c4d8168fd7ce013ba3e074f93c933ccd4b57aa5 on radistmorse:patch-1 into 5d2754306d67d1e654a1a34e1d2e74439a9d53b3 on nlohmann:develop.

This feature is very good，when can it be merged?

When the CI is not failing any more.

I'll open a new PR since this one is quite stale