Deployment

Deployment
User Story
As a boot camp student,
I want the prework notes to be structured on a webpage,
So that I can easily find and read the information.
Acceptance Criteria
GIVEN a Prework Study Guide website,
WHEN I visit the website using the URL,
THEN I can access my website from any browser

Repository URL: https://github.com/Skhandavalli123/prework-study-guide
Deployed application URL: https://skhandavalli123.github.io/prework-study-guide/


Self correlations app

to support a network viz of taxa X taxa correltions for mbio

not tested yet. will get to that next week.

Yea. maybe i can improve the language some. i think part of the issue is using the word 'network' to sometimes mean a unipartite network specifically, and sometimes as a general or abstract concept.


Error Stating StandardAttribute Doesn't Exist When it Does

Environment information
System:
  OS: Windows 11 10.0.22631
  CPU: (24) x64 AMD Ryzen 9 5900X 12-Core Processor
  Memory: 41.60 GB / 63.88 GB
Binaries:
  Node: 20.10.0 - C:\Program Files\nodejs\node.EXE
  Yarn: 3.5.0 - C:\Program Files\nodejs\yarn.CMD
  npm: 10.2.5 - C:\Program Files\nodejs\npm.CMD
  pnpm: 9.4.0 - C:\Program Files\nodejs\pnpm.CMD
NPM Packages:
  @aws-amplify/backend: 1.0.0
  @aws-amplify/backend-cli: 1.0.1
  aws-amplify: 6.3.8
  aws-cdk: 2.140.0
  aws-cdk-lib: 2.140.0
  typescript: 5.4.5
AWS environment variables:
  AWS_NODEJS_CONNECTION_REUSE_ENABLED = 1
  AWS_SDK_LOAD_CONFIG = 1
  AWS_STS_REGIONAL_ENDPOINTS = regional
No CDK environment variables

Description
I'm in the process of converting my gen 1 app to a gen 2 app.  I'm attempting to setup authentication.  My app previously used Cognito with email to log in, but also required user to provide name and phone_number attributes.  I configured my resource.ts as such:
`import { defineAuth } from "@aws-amplify/backend"
export const auth = defineAuth({
loginWith: {
email: true,
},
userAttributes: {
name: {
mutable: true,
required: true,
},
phone_number: {
mutable: true,
required: true,
},
},
})
`
According to the gen 2 documentation, userAttributes can be used to define any standard Cognito attributes, which name and phone_number are both standard attributes.  However, when it goes to compile, I get this error:
2024-07-02T04:12:28.597Z [INFO]: amplify/auth/resource.ts(8,5): error TS2353: Object literal may only specify known properties, and 'name' does not exist in type 'StandardAttributes'.
Followed documentation from: https://docs.amplify.aws/react/build-a-backend/auth/concepts/user-attributes/
Which links to list of standard attributes: https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#cognito-user-pools-standard-attributes

Hey @mitchelllee222 :wave: thanks for raising this! While we work to improve our API documentation the attributes listed in this object are camelCase and align with CDK's StandardAttributes https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_cognito.StandardAttributes.html#properties

Thank you!  I updated the attributes to use fullname and phoneNumber as listed in the doc you listed and was able to get past the previous issue.  However, this introduced a new issue in which now it says that I can't update the userpool that was already created:
90
2024-07-02T19:05:20.571Z [INFO]: CFNUpdateNotSupportedError: User pool attributes cannot be changed after a user pool has been created.
91
Resolution: To change these attributes, remove defineAuth from your backend, deploy, then add it back. Note that removing defineAuth and deploying will delete any users stored in your UserPool.
I apologize, but I am not following what the Resolution is telling me to do to resolve this.  I had no control over the initial creation of the UserPool and I'm okay with the warning about it deleting any users since I'm just setting up the app, but I'm not sure how I update the resource.ts file appropriately to make the changes.

Hey @mitchelllee222 this is a Cognito limitation where required attributes cannot be changed after initial creation https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#how-to-edit-standard-attributes
To delete it you can comment out/remove the auth resource from defineBackend
import { defineBackend } from "@aws-amplify/backend"
import { auth } from "./auth/resource"
import { data } from "./data/resource"

defineBackend({
- auth,
  data,
})

Thank you Jose, now that I have some clearer understanding how gen 2 works, I just deleted the app, updated the resource.ts in Auth to correctly have the attributes I want and created the app again.  Now I'm off to the races with the correct properties defined in project using the property names from the doc you shared.


Reset Tracker button does not fully reset the map tracker

Relates to https://github.com/Phantom5800/pmr-tracker/issues/32
Resetting the tracker has some weird behavior in the Map Tracker section. It seems to reset all of the map tiles to show that they have available checks, even if the setting allowing those checks (eg. Coinsanity) is disabled. Despite the map tiles being active, the checkboxes within cannot be interacted with unless the relevant option is enabled. One fix seems to be toggling Coinsanity and other relevant options on & off in the tracker's Seed Settings, which then sets these map tiles to their proper state

The other thing I noticed is that the Checkboxes do not seem to reset. Even though the map tile itself will reset and light up, anything that was checked off in that map tile remains checked off

Fixed by https://github.com/Phantom5800/pmr-tracker/pull/34


Bad request status : 400

I try to download firmware for Samsung Galaxy s20 plus (Bts edition) on Bifrost. But I get Bad request status : 400, I think Odinrom source not working. Can you check it. Thank you

um if that is your IMEI i wouldn't recommend sharing your IMEI number on internet.

Thanks bruh, what the solution for bad request :400?

What model and CSC are you entering?

Model - SM-G985F
CSC - INU or XSP
On Sun, 3 Mar, 2024, 7:42 am Zachary Wander, @.***>
wrote:

What model and CSC are you entering?
—
Reply to this email directly, view it on GitHub
https://github.com/zacharee/SamloaderKotlin/issues/166#issuecomment-1974980986,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BDJROQR7DQLNWZMWMO2QCM3YWKBKLAVCNFSM6AAAAABDSECZ2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZUHE4DAOJYGY
.
You are receiving this because you authored the thread.Message ID:
@.***>

I'm not able to reproduce:

I have purple edition BTS version mobile . I want OXB firmware version not
OXM
On Sun, 3 Mar, 2024, 7:56 am Zachary Wander, @.***>
wrote:

I'm not able to reproduce:
image.png (view on web)
https://github.com/zacharee/SamloaderKotlin/assets/9020352/2d1e2a08-a739-4a4d-9201-7f32bf32225b
—
Reply to this email directly, view it on GitHub
https://github.com/zacharee/SamloaderKotlin/issues/166#issuecomment-1974982978,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BDJROQS4HT6YGGEPMIL534LYWKC4ZAVCNFSM6AAAAABDSECZ2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZUHE4DEOJXHA
.
You are receiving this because you authored the thread.Message ID:
@.***>

Use the SIO region.

Thanks, I will!
On Sun, 3 Mar, 2024, 8:08 am Zachary Wander, @.***>
wrote:

Use the SIO region.
—
Reply to this email directly, view it on GitHub
https://github.com/zacharee/SamloaderKotlin/issues/166#issuecomment-1974989153,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BDJROQT6DJLMV2HU5DZCN73YWKEIZAVCNFSM6AAAAABDSECZ2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZUHE4DSMJVGM
.
You are receiving this because you authored the thread.Message ID:
@.***>


Failed to upload and index the file, retried multiple times

@cin-jimmy I wonder if you have the errors relating to fastembed installation?

@cin-jimmy I wonder if you have the errors relating to fastembed installation?

@trducng perhaps you should ask this on our slack channel as he might not be active on github.

| fastembed installation
Not sure if I did that. Simply followed the instruction and click-installing all the windows files.

This issue has been resolved @trducng , @lone17


Gas optimizations

Reduced amount of data passed to embedded standards
Removed embedded intents as their own inherited contract
Added limit of 256 segments per intent and 32 intents per solution to reduce amount of dynamic data required when processing
Combined intent standards of different curve types to simplify code
Reduced the amount of data a curve definition consumes
Reduced the amount of storage required for Entry Point security
Removed emitting events for solver's intents

Gas Consumption:

ERC20 Transfer (fee paid in same token): 138780 (110039 for a batch of 4)

reference - 51354 for an ERC20 transfer tx

ETH Transfer (fee paid in other token): 146371 (117618 for a batch of 4)

reference - 21000 for a simple ETH transfer

ERC20 Swap (fee paid intrinsically): 199716 (114010 for a batch of 4)

reference - 117437 for a simple swap to WETH and unwrapped to ETH

Yikes. Unfortunately forge coverage is now broken due to the --via-ir compilation flag. This flag is necessary in order to save gas. I'm not sure how to get around this... it is a known issue for forge though.
We may have to switch to hardhat for coverage testing as it does not output the same error

So I reworked the EntryPoint a bit to get past the "stack too deep" compilation errors so that coverage will still work. via-ir is still used during hardhat tests (and future benchmarking) which does save some gas, but performance has still taken about an 800 gas hit. It might be worth merging _handleIntentSegment into _handleIntents right before deployment to save that 800 gas.


ContextMenu-Event Target is different between chrome and Firefox/IE

I have used typo spell checker implementation from the below example
https://codepen.io/anon/pen/veGzWN?editors=1000 which seems to be working fine in all browsers which Codemirror version 5.18.0
When i tried with the latest version  on the contextmenu handler, Event target is showing as below
Chrome

FireFox

Due to the above conflict , i'm not able to proceed further

Try using posAtCoords with the coordinate data in the event. I doubt the library can do much about how the browser builds up the event.

Hi @marijnh , thanks for your suggestion . I have forgot to include the link for Non-working version .please find the link here. I have logged this issue because it was working fine in older version but it seems getting broken with contextmenu is segregated with textarea and Input

@kishorethecoder I also ran into this issue with the exact implementation which I'm trying to reuse. Did you find a solution for this problem?

When you set inputStyle to contenteditable Firefox receives the correct event target.

When you set inputStyle to contenteditable Firefox receives the correct event target.


fix: support callables in pipe

This fix add support for callables in pipe function

PSL doesn't support callables, only closures:
https://github.com/azjezz/psl/blob/next/src/Psl/Fun/pipe.php#L21


Add SAI library generation

Switch from simple_switch to simple_switch_grpc
Consolidate all commands in sirius-pipeline/Makefile
Add introductory test vnet_out (TODO: add traffic test part)
Signed-off-by: Marian Pritsak<EMAIL_ADDRESS>

I was able to execute all the make steps per the sirius-pipeline/README.md with no issues, got some "OK" console messages and verified the simpleswitch pipeline log messages showed ingress/egress behavior.

@marian-pritsak Can we try to finalize this and merge it? We'd like to start working on the CI/CD pipeline running the make commands. Looks like it needs a simple README resolution then it's good to go. Thanks.

@marian-pritsak Can we try to finalize this and merge it? We'd like to start working on the CI/CD pipeline running the make commands. Looks like it needs a simple README resolution then it's good to go. Thanks.

Fixed all the conflicts. Now we can merge it


Cleanup documentation

Moved the md files under docs
Cherry-picked the commit editing the README.md

Just noticed that we are referencing https://github.com/openmina/openmina/blob/documentation/docs/p2p_service.md. The documentation branch is not merged yet.
@tizoc We can leave the link as is, or can we merge the branch @dkuehr @JanSlobodnik ?

@adonagy I mentioned that to @JanSlobodnik earlier today, I think that for this release it is not a big deal, but in general we have to sort that out because we have documentation referenced here that spread across different branches/repos.


added Union Find progression basic, path_compression, quickfind, quic…

…kunion, optimized

Follow the structure and format. Create one specific issue based on 1 problem statement. Get it assigned, Then work on it. We have Issue and PR template to follow. Read the README file and contributing guidelines to know more details on what and how it needs to included, @TheDoctor561


Use lexical this outside tag scope

https://github.com/voorhoede/riotjs-style-guide#assign-this-to-tag
With es6 lexical this syntax () => {} or function() {}.bind(this) it should be very easy to avoid something as redundant as var that = this or const tag = this

Agree both are possible. Using const tag = this is simply our preference over function() {}.bind(this).
Also based on Angular Style Guide > var vm = this;.


Opensuse 13.2 - Atom - Can't open remote folder (project) and right click menu not existing

In opensuse 13.2 the right click contextual menu for atom to open a folder or project in atom there isn't.
And when I attempt to open using atom a remote network folder using terminal:
atom smb://sambashare/..../folder
it open a new atom window with the current folder opened but no files in it..
anyone has an idea on how to get the right context menu available in opensuse kde 13.2? please is frustrating that I can't open a project folder quickly and I also have problem with remote folders like vpn or smb...
I use atom in windows too and there aren't this problems.. thanks in advance
(atom version 1.2.0)

(big fail for the right click context menu, sorry) but still cant' edit remote files samba and/or vpn


Dsl extensions

Lots of work here:

Improved bundle dependency selector/matcher
Support for "remapping" a dependency coordinates
Support for OBR urls in addition to MVN and WRAP
Support for adding  definitions
Support for adding  dependencies
Support for specifying a bundle as a dependency ()
Updated Karaf XSD to use 1.2.0. Deploying into 3.0.3 was giving me warnings about the XSD version used initially.
Moved packages to be more OSGi-y

Added a 3rd commit to correct an error

Thx


feat(msbuild): add msbuild language tools server

Add https://github.com/tintoy/msbuild-project-tools-server/ to the LSP configs

I haven't been able to get completion working yet, but I've opened an issue for the server to work on that https://github.com/tintoy/msbuild-project-tools-server/issues/104. Diagnostics work, and hover sometimes works.


[rojak-pantau] Bug on spiders, class not imported

It seems this missed on #69 , will fix this on the next PR https://github.com/pyk/rojak/blob/master/rojak-pantau/rojak_pantau/spiders/detikcom.py#L44

tinggal tambah from scrapy import Request

yup bener

Fixed by #73


Add mockCall and expectCall cheatcodes

Adds three new cheatcodes: mockCall, expectCall and clearMockedCalls. One is used to return dummy data from either an existing or non-existing contract, and the other is used to assert that a call was made to a specified address with certain calldata.
For both mockCall and expectCall, if the first bytes parameter (which is the expected calldata) is only 4 bytes long then it is treated as a selector.

For mockCall this means that any other data in the call is ignored and the result is mocked for an entire function.
For expectCall this means that any call to the specified address with the specified selector results in the check passing.

If the calldata is more than 4 bytes long, then the entirety of the calldata is matched for both.
Questions

Should we have a cheatcode to clear individual mocks?

Closes https://github.com/gakonst/foundry/issues/382

@onbjerg can you add the self.add_debug and the appropriate enum variant in evm-adapters/src/cheatcodes/debugger.rs - then i will merge

Should be good now


Use npm ci to install JS deps

This is faster and recommended by NPM for automated build processes

ok, i didn't know that, thanks for the patch


MassMint - Upload description file

Thank you for your contribution to the KodaDot - One Stop Shop for Polkadot NFTs.
👇 __ Let's make a quick check before the contribution.
PR Type

[ ] Bugfix
[x] Feature
[ ] Refactoring

Context

[x] Closes #5179
[ ] Requires deployment <snek/rubick/worker>
[x] Branch From #5765

Before submitting pull request, please make sure:

[x] My contribution builds clean without any errors or warnings
[x] I've merged recent default branch -- main and I've no conflicts
[x] I've tried to respect high code quality standards
[x] I've didn't break any original functionality

Optional

[ ] I've tested it at </ksm/collection>
[ ] I've tested PR on mobile
[ ] I've written unit tests 🧪
[ ] I've found edge cases

Had issue bounty label?

[x] Fill up your KSM address: Payout

Community participation

[ ] Are you at KodaDot Discord?

Screenshot 📸

[ ] My fix has changed something on UI; a screenshot is best to understand changes for others.

Copilot Summary

🤖 Generated by Copilot at de4c805
This pull request adds and improves the components and functionality for the mass mint feature, which allows the user to mint multiple NFTs from a zip file and a description file. It refactors the Massmint.vue component to use existing and new components, such as NeoCollapse, NeoButton, OverviewTable, EditPanel, and various modal components. It also improves the validation and parsing of the zip and description files, and the display and editing of the NFTs in a table. It adds some type definitions, helper functions, and styles for the mass mint feature, and a new layout component noFooter.vue that does not include the footer.

🤖 Generated by Copilot at de4c805

Mass minting NFTs
EditPanel, NeoInput
Autumn of crypto

@kodadot/qa-guild it should be testable on https://deploy-preview-5824--koda-canary.netlify.app/ksm/massmint (Minting not present in this PR)

The interface shows up properly, but when i try to select a collection it wont show up, thus not allowing me to test the dropdowns:

@prury

The interface shows up properly, but when i try to select a collection it wont show up, thus not allowing me to test the drop downs

fixed

@prury

The interface shows up properly, but when i try to select a collection it wont show up, thus not allowing me to test the drop downs

fixed

same happens when i use the link you sent previously (https://deploy-preview-5824--koda-canary.netlify.app/ksm/massmint)
do you have a new one?

i did create a specific RMRK collection specific for this test

maybe your collection is on kusama network?
try  https://deploy-preview-5824--koda-canary.netlify.app/rmrk/massmint

it was all under RMRK2 as shown in the screenshots below, still wont work.
Collection punktest on RMRK2:

I can see it when i try to add more NFTs:

Still not able to choose it from the dropdown:

Console error:

@prury
should work now

@prury should work now

it shows my collection now! :)
lets go forward then:
uploaded a zip file, generated from both winrar and default windows zipping method, but it says the filetype is invalid:

i would recommend adding support for .rar files as well in the future

@prury should work now

it shows my collection now! :)
lets go forward then:
uploaded a zip file, generated from both winrar and default windows zipping method, but it says the filetype is invalid:

i would recommend adding support for .rar files as well in the future

Oh yes. I actually ran into that myself on windows
Are you using windows?

@daiagi
Successfully loaded the NFTs into it using a .txt file, thank you
issue1: their order seems odd, it's not being sorted by name or price

issue2: when i try to change the price, if i use a float like 1.3 or 1,3 it wont go

issue1: their order seems odd, it's not being sorted by name or price

the order is the order of appearance in the zip file
the name and price can be missing in the description file and can be changed by user, sorting by any of these will cause rows to move around whenever user changes values

issue2: when i try to change the price, if i use a float like 1.3 or 1,3 it wont go

apologies i forgot to take care of this. fixed

/reviewpad summarize

issue1: their order seems odd, it's not being sorted by name or price

the order is the order of appearance in the zip file the name and price can be missing in the description file and can be changed by user, sorting by any of these will cause rows to move around whenever user changes values

issue2: when i try to change the price, if i use a float like 1.3 or 1,3 it wont go

apologies i forgot to take care of this. fixed

Thank you @daiagi, no need for apologies :)
regarding the order:

regarding the order:

the order of appearance in the zip file containing the images
keep in mind that the description file is optional
tbh i don't see a need of any ordering, except maybe by user in the form of arrows next to the table titles
and that should be done in another issue if required

@Jarsen136 may I get your review please?

@vikiival  merge?

@vikiival merge?

Like let's move :)


refactored cusine to accomidate caddy using install instead of build

i dont y it is install now , this breaks from the normal use of cuisinse apps , but for now it works (will prbbly break in ays and in cockpit )

I'm not sure about the .install thing in the first place
╰─$ ag --py "caddy\."
github/jumpscale/ays_jumpscale8/_virtualization/docker/actions.py
128:        #         local.apps.caddy.build()

github/jumpscale/ays_jumpscale8/_servers/webserver.caddy/actions.py
38:            cuisine.apps.caddy.build(start=True, ssl=True, dns=domain)
40:            cuisine.apps.caddy.start(ssl=True)

github/jumpscale/jumpscale_core8/tests/tools/cuisine/TestCuisineBuilder.py
47:            self.assertTrue(cuisine.apps.caddy.build.called)

github/jumpscale/jumpscale_core8/lib/JumpScale/tools/cuisine/CuisineBuilder.py
36:        self.cuisine.apps.caddy.build(start=start)

github/jumpscale/jumpscale_core8/lib/JumpScale/tools/gcc/GCC.py
133:        node.cuisine.apps.caddy.build(ssl=True, start=True, dns=node.addr, force=force)

github/jumpscale/jscockpit/scripts/building.py
56:    container.apps.caddy.build(start=False)

dockers/js8/x86_64/51_ubuntu1604_jscockpit/build.py
29:d.cuisine.apps.caddy.build(start=False)


Add splitdiff

Tool name
splitdiff
Tool license
Not sure
Add or update?

[X] Add
[ ] Update

Desired version
Not sure
Approximate size
No response
Brief description of tool
separate out incremental patches
URL for tool's homepage
https://linux.die.net/man/1/splitdiff
Provide a basic test case to validate the tool's functionality.
No response
Platforms where you need the tool

[ ] Azure DevOps
[X] GitHub Actions

Runner images where you need the tool

[ ] Ubuntu 18.04
[ ] Ubuntu 20.04
[X] Ubuntu 22.04
[ ] macOS 11
[ ] macOS 12
[ ] Windows Server 2019
[ ] Windows Server 2022

Can this tool be installed during the build?
No response
Tool installation time in runtime
No response
Are you willing to submit a PR?
No response

The package is installed on my local machine (Ubuntu 22.04) but not on the Github image. It seems to be included in my local 22.04 which I installed recently.

Hi @tharatau, thank you for the installation suggestion, but since it only takes about ten seconds to install in runtime we would not like it to be pre-installed now, but we will reconsider it in the future.

since it only takes about ten seconds to install in runtime

How were you able to install splitdiff on the runner image? I was unable to do so which is why I opened this issue.

splitdiff is a part of the patchutils which you can install in runtime

@mikhailkoliada thanks!


Copy-paste error in IndexingTaskExecutor

It looks like someone copy-pasted the second logging line. I think the following would be correct: Logger.Information("Removed content items to index: {0}", deleteFromIndex.Count);
The problematic code from IndexingTaskExecutor.cs:
// save new and updated documents to the index
            try {
                if (addToIndex.Count > 0) {
                    _indexProvider.Store(indexName, addToIndex);
                    Logger.Information("Added content items to index: {0}", addToIndex.Count);
                }
            }
            catch (Exception ex) {
                Logger.Warning(ex, "An error occured while adding a document to the index");
            }

            // removing documents from the index
            try {
                if (deleteFromIndex.Count > 0) {
                    _indexProvider.Delete(indexName, deleteFromIndex);
                    Logger.Information("Added content items to index: {0}", addToIndex.Count);
                }
            }
            catch (Exception ex) {
                Logger.Warning(ex, "An error occured while removing a document from the index");
            }

It has already been fixed in the dev branch. We should probably put it in 1.10.x


Show lower scoring intents, as well as top intent, on bot context

@cleemullins This isn't necessarily ready to merge yet - but wanted to run this past you and get your opinion on it along with a couple of further options.  Through the use of the IntentRecognizerMiddleware we are currently hiding all but the top intent returned.  In my experience there are many cases where it is useful for the developer to see the lower scoring intents as well as the top one - in order to check if there are other close matches for example.  This PR adds an Intents property to the context so that the developer will have access to both the top and all intents returned.
So, a couple of questions;

Are you happy with the principle of making the other intents visible?

I considered making the TopIntent property on the context read only and calculating it based on the intents list (i.e. move the method FindTopIntent from the IntentRecognizerMiddleware to the context). What are your thoughts?

cc @daltskin for thoughts.

@cleemullins I will obviously add / update tests as appropriate once we have agreed the approach.

This is a good example of where we need more clairty in our Roadmap. My fault.
The intent (ahem!), and this is already done on the Node side, is to remove the Intent plumbing from BotContext and have it added in by specific intent-related middleware components. That methods like TopIntent are on BotContext is something I feel bad about, as I haven't caught up to Steve in removing them.
The goal(s) here is to dramatically simplify Context.
If I may, Please! particpate in the ongoing discussion here, as we would really love some additional perspectives.
(Context) https://github.com/Microsoft/botbuilder-js/issues/66
(Middleware Pipelines) https://github.com/Microsoft/botbuilder-js/issues/74

Great, thanks for the clarity here Chris. I suspected this might be the case, hence me just putting a quick idea together. I'll absolutely feed into those conversations and if I can help implement some of these changes on the .net side then I am more than happy too.

Closing this for now. I will feed into the Intent bits as the middleware / context picture becomes clearer over the coming days / weeks.


Update index definition to handle INCLUDE clause

This fix relates to https://github.com/JasperFx/marten/issues/1982

Thanks, @mysticmind, looks good 👍 Btw. I think that it's rather a new feature rather than a bug, as Covering Indexeswere introduced in Postgres 11.
It's not a blocker for me, but we could include checks based on the Postgres version, as we have in Marten. Still, I think that we could include it in a separate pull request.

Good catch. Let us merge this in and then we can look at handling things based on Postgres version as a separate PR/new feature since the current Weasel code base doesn't deal with it in any form or fashion.

@oskardudycz With regards to bug versus feature, this use case was working fine in 3.x but breaking in 4.x as per https://github.com/JasperFx/marten/issues/1982. Hence was inclined to treat this as a bug rather than an enhancement. Thoughts?


[Introspection] Remove @default from scalar lists

Error parsing attribute "@default": Cannot set a default value on list field.
default-on-list
@default on a list type field (which is not supported)

Postgres, basic-blog:
Error: Schema parsing error: Error parsing attribute "@default": Cannot set a default value on list field..
  -->  schema.prisma:25
   |
24 |   id      Int      @id @sequence(name: "posts_id_seq", allocationSize: 1, initialValue: 1)
25 |   tags    String[] @default("{}[]") @scalarList(strategy: EMBEDDED)
26 |   title   String
   |

Is there any news about this feature?

What feature? This is a bug report about Introspection getting things wrong for @default of scalar lists - which is not possible. If you mean that feature, it is being tracked at https://github.com/prisma/prisma/issues/8330

Thanks @janpio! "that" one it is! =)


Unbind the dependency on each other for tcmu-runner and libtcmu.

Preparing to unbind the dependency on each other for tcmu-runner and libtcmu.
1, Move handler register/unregister helpers from tcmu-runner to libtcmu.so to unbind the dependencies.
2, Move tcmur_handler struct from tcmu-runner to libtcmu.so
3, Rename tcmur_handler to tcmulib_backstore_handler.
4, Make libtcmu_priv.h only visible for libtcmu.so
5, Rename some files:
alua.c --> libtcmu_alua.c
alua.h --> libtcmu_alua.h
tcmur_aio.c --> libtcmu_aio.c
tcmur_aio.h --> libtcmu_aio.h
tcmur_device.c --> libtcmu_device.c
tcmur_device.h --> libtcmu_device.h
target.c --> libtcmu_tpg.c
target.h --> libtcmu_tpg.h
6, Delete some files:
tcmu-runner.h
main-syms.txt
7, Add SCSI helpers, and rename the SCSI helpers:
libtcmu_scsi.c
libtcmu_scsi.h
8, Revert "build: drop versionless libtcmu.so symlink"
9, libtcmu: install the headers and revert the old discarding commit: the headers include:
libtcmu.h libtcmu_common.h libtcmu_scsi.h and ccan/ccan/*

qemu-tcmu needs to define two different handler struct instances with this patchset : tcmulib_backstore_handler and tcmulib_handler. Could we tune forther to drop one handler or merge them?

@baihuahua
Here tcmulib_backstore_handler will be exported out to the handlers and the tcmulib_handler will be exported to the daemon like tcmu-runner and qemu-tcmu. And the handlers and the daemon are different parts, so merge them is not a very good idea.
Currently the qemu-tcmu have integrated the qemu handler and daemon process together, maybe we should separate the code as different components.

@mikechristie @pkalever
Please help review, this is the first version of adding the libtcmu library back.

Could you post a link to the current qemu-tcmu code?

Hi Mike, Does this change still make sense? What should we do to make libtcmu usable by both tcmu-runner and qemu-tcmu? @mikechristie

Sorry. I am behind. I am trying to get to this this week.

Actually the plan of qemu-tcmu is to use SCSI code in QEMU in the end, but this QEMU SCSI code needs to tune for qemu-tcmu to use so for now qemu-tcum still uses SCSI helpers from litcmu/tcmu-runner. But if it's too hard to seperate tcmu-runner and libtcmu because of these SCSI helpers, qemu-tcmu can change to use SCSI code in QEMU or reimplement several necessary SCSI commands right now, so libtcmu shall just include DBUS registeration and TCMU protocol handling code, without SCSI helper code. By doing this libtcmu will be sharable between tcmu-runner and qemu-tcmu and tcmu-runner doesn't need to change too much. I think this should be more reasonable and more easier to achieve.
What do you think Mike?

@mikechristie
Sorry for late, these days I was busying for other workloads.

Here is some general questions/comments:
I am not so sure I understand the end goal for the scsi processing. Is qemu-tcmu going to use the qemu or libtcmu scso helpers? For example for the final qemu_tcmu_handle_cmd are you planning on use the libtcmu scsi helpers or some qemu ones?
Are you trying to use the libtcmu scsi helper and so that is why the patches merged the tcmu-runner and libtcmu device/handler structs?

Currently, qemu-tcmu is only using some of the sync scsi helpers which are also called handle_sync_cmd(). And qemu-tcmu must use qemu's APIs to implement other scsi helpers to support some feature like the clone. And finally it will add it's own basic helpers of all the scsi commands and then switch to them. This should be the goal of qemu-tcmu.
These days I was thinking to separate the sysfs/uio and the dbus helpers from the tcmu-runner into libtcmu.so. And finally the libtcmu.so will mainly include the following 3 parts:
[1] sysfs/uio hanlding helpers
[2] dbus helpers
[3] the sync scsi helpers

For some reason I thought you guys were going to do the opposite.
With this new design do you now have to do a tcmulib_handler and also a tcmulib_backstore_handler?
From the current qemu-tcmu code, it must, but we can change the qemu-tcmu design.

We are dropping support for the daemon type where it only did a tcmulib_handler (consumer.c/tcmu-synthesizer.c)?

For now the qemu-tcmu is also using daemon type too.

If we do go this route instead of tcmulib_backstore_handler, I think we can just shorten this to tcmulib_backstore.
Thanks.

And finally it will add it's own basic helpers of all the scsi commands and then switch to them. This should be the goal of qemu-tcmu.

To be precise, much of these SCSI command helpers have implemented in QEMU as there's a requirement of full-functional SCSI disk emulation for QEMU.

With this new design do you now have to do a tcmulib_handler and also a tcmulib_backstore_handler?

From the current qemu-tcmu code, it must, but we can change the qemu-tcmu design.

Emmm..., yes, qemu-tcmu is still in RFC and we can change it as we need. But i'm afraid such changing qemu-tcmu to apply the model of tcmu-runner is not the right direction. Because the motivation of tcmu-runner and qemu-tcmu are different. One important feature/goal of tcmu-runner is to make it easy to develop various handlers like rbd,gluster so tcmu-runner has tcmulib_handler for a daemon and tcmulib_backstore_handler for the handlers. While qemu-tcmu doesn't have such a requirement as QEMU has already supported them.

Hey @lxbsz @baihuahua
I am not sure if you guys were waiting for me to comment on this or not. I was actually waiting for you guys to finish discussing it :)
If you guys are waiting on me, my opinion would be:

For the initial lib do as little as possible. As long as we design it right it should  be easier to expand the lib API instead of having to support bad API calls/structs that we made mistakes on.

It seems we all agree we need the lib to handle the very basics: uio, configfs, and netlink.
So we can just take the libtcmu code that did this stuff and make it a lib.

It seems that you guys do not agree on the SCSI parts. I would like to share SCSI code as much as possible, but for the initial release I think we can skip it. Just have qemu-tcmu plan to use the native qemu SCSI code and have tcmu-runner use its code.

So can we skip adding the SCSI api.c parts into the lib initially? You guys can then debate this later.

Just do the most basic daemon support initially. No merging of tcmu-runner handlers and libtcmu handlers. So just support what is needed for #1. That is basically what we had in the original lib.

We can at least then start with a stable lib that supports enough to create, delete and config devices, and handle IO.

Hey,
Attached could be the basis for the initial base lib functions we will support:
0001-libtcmu3-header-example.txt
Note this patch requires this patch
https://github.com/open-iscsi/tcmu-runner/pull/435/commits/0618ade3258ca6d61908d4a5bb1aecafdd0e3dec
which drops some dbus stuff.
So basically we move the functions listed in the headers in 0001-libtcmu3-header-example.txt and put them in new files:
libtcmu3 files:
libtcmu3.c - core functions that do not belong anywhere specific. Functions like tcmulib_get_next_command, tcmulib_initialize, etc, and misc functions they call like open_devices. We may want to put the netlink functions into a new file netlink.c just to make the organization nicer.
configfs.c - configfs helpers. We can just take this entire file.
Notes.

One issue we need to eventually decide is the return code used in tcmulib_command_complete. In the example header it is a tcmu_cmd_status, but that is going to be a pain to have the libtcmu3 users have to send a patch to update libtmcu3 every time they want to add a new error string. We probably want them to just set the sense and return a SCSI status code like before.

So we should move the tcmu_cmd_status stuff to tcmu-runner specific code.

This patch/plan is just the most basic info/layout/plan. I am open to other ideas.

I guess a funny/dumb thing on my part is my proposal above is just basically bringing back the old libtcmu minus the SCSI helpers.  libtcmu3.c would be almost exactly the same as libtcmu.c and libtcmu_common3.h and libtcmu3.h in my patch are really similar to libtcmu_common.h/libtcmu.h
So we probably do not need to rename them. We could just move the scsi and iovec stuff from libtcmu_common.h and libtcmu.h and related .c files to new files that only tcmu-runner uses  and then just bump the lib version:
set_target_properties(tcmu
PROPERTIES
SOVERSION "3"
)
I can send a patch for this.

set_target_properties(tcmu
PROPERTIES
SOVERSION "3"
)
I can send a patch for this.

Yeah, that looks good to me and please go ahead Mike.
I will begin to start this since next week.
Thanks.

I made a mistake linking that patch:
https://github.com/open-iscsi/tcmu-runner/commit/0618ade3258ca6d61908d4a5bb1aecafdd0e3dec
to the libtcmu issue here and you can ignore it.
They are not really related right now for the initial release. The dbus code being removed in that patch is just not used by anyone anymore. It was used by dbus users like targetcli to have the daemon load a handler dynamically. I think the problem was that it was added but we never fully maintained it due the only user not using it anymore.
I think going forward it is a useful to have something like it in the lib, and I think we should add dbus helpers to the lib eventually. For the initial release though I think we can hold off unless you have a immediate need.

Sorry i'm behind. If we decide to not include the dbus code into the initial release of new libtcmu, 0618ade should not be merged because qemu-tcmu need the code in that patch to register onto DBUS to cooperate with targetcli as a backstore. Tcmu-synthesizer should also be in this same situation. If we include dbus code into the initial release, that's okey to remove code in that patch as daemons could grab the dbus on their own.

OK, let's drop that patch out of the picture. What's your plan of this new initial libtcmu, Mike? That would be very great if we can see it soon.

We are just finishing up QEing a release at work, so I hope to have it done by the end of the month.
Let me know if you want to work on it. I thought you mentioned it above, but was not sure. If you want to make it it is ok with me.

OK, i can make it. Will send PR ASAP.


How to set array type env variable when use this package

Hi when I tried to set array type environment variable for example when I set
export ARRAY=a,b,c
The parser of this go-flags package always parse that a,b,c to one string like
["a,b,c"]
Rather than
["a", "b", "c"]
How to set this array variable up in env variable?
Thanks

You can use the env-delim tag to specify on which character it should be split. See https://pkg.go.dev/github.com/jessevdk/go-flags#hdr-Available_field_tags and https://github.com/jessevdk/go-flags/blob/6a6df1be4f0285203eafe8e39deca331e34926ff/parser_test.go#L256 for an example.


Tracks Editor moved to geoRouter class, Route section improved, bugfixes

TODO

#2078

https://github.com/osmandapp/OsmAnd-Issues/issues/2116


values is persistent sometimes

I am trying to write a project using pdo-dbal, however when I make more than one query in a call using the MemcacheCache wrapper I am getting persistence in the values class variable.
See below. The first entry is the first query on the page, the second query is the next. The second query still contains the first query's values despite not being passed in. The second image shows the second query's dbal call.

I tried changing the first call's synonymous column of id to lobbyID thinking it was being cached that way, but this did not fix anything.
I can fix this by making values public, and setting it to [] just like what \DBAL\Database\executeQuery() tries to do, but somehow fails in doing so; I can also fix it by clearing values as the first action in \DBAL\Database\select(), see below.

I tried removing the unset() calls, and I tried moving values = [] to right after the bind, but neither of those solved the issue, only clearing values from outside the class.
If I could get xdebug working I could try to narrow it down further, but I guess that isn't happening.

I have just released a new version that should resolve this issue


Problem_Statement_2

An insect is crossing a road. The road is divided into some number of units, and at each unit, there may or may not exist a leaf. An insect can jump on a leaf, but it must not jump on road.
Given a list of leaf's positions (in units) in sorted ascending order, determine if an insect can cross the road by landing on the last leaf. Initially, an insect is on the first leaf and assumes the first jump must be 1 unit.If insect's last jump was k units, its next jump must be either k - 1, k, or k + 1 units. An insect can only jump in the forward direction.
eg: Input: leaves= [0,1,3,5,6,8,12,17]
Output: true
Explanation: An insect can jump to the last leaf by jumping 1 unit to the 2nd leaf, then 2 units to the 3rd leaf, then 2 units to the 4th leaf, then 3 units to the 6th leaf, 4 units to the 7th leaf, and 5 units to the 8th leaf.
Input: leaves = [0,1,2,3,4,8,9,11]
Output: false
Explanation: There is no way to jump to the last leaf as the gap between the 5th and 6th leaf is too large.

Hello. I'm Aishwarya Menon (SY EnTC) from CCOEW.
I'd like to work on this issue.

Hello, Aishwarya you are assigned 1 issue already.
Once that is reviewed and merged we can assign this to you.
(If someone comments before that we will assign this issue to them)

Hello. I'm Gayatri Chaudhari(TY Comp) from CCOEW.
I'd like to work on this issue.

Assigned you the issue make sure you submit the solution in 2 days else we will unassign you

Thank you. I will submit within deadline.

Hey ..I have sent the pull request can you check whether it is visible or not?

Your PR is not created in the right way. You have to follow guidelines. Check the video that we shared with you

Can you check now?

I can't see your pr linked here. Just comment #issuenumber

#113

You have to add question at the start of your solution in comments and add comments to your code as well.

Please check now I have committed the necessary changes and sent the pull request. issueNumber #113


Provide description in pom?

https://quarkus.io/extensions/io.quarkiverse.config/quarkus-config-hocon/ would look better if it had an extension-specific description, rather than the inherited parent description. :)

Sure :)


Shortcuts using the Alt key don't work on macOS

Describe the bug
As the title says, shortcuts using the Alt key seem to be broken on macOS (for example, "Add to program", which is Alt+I by default). Also, when trying to assign a shortcut to any action on the CodeBrowser tool, you cannot use Alt). Interestingly enough (I just tried), pressing the shortcut twice seems to work, so you get the expected behavior every second pressing of the shortcut.
To Reproduce
Try to use "Add to program", or just assigning a new shortcut with Alt/
Environment (please complete the following information):

OS: macOS 10.14.6
Java Version: 11.0
Ghidra Version: 9.1 (from master as of today)

I don't think this is specific to the 'Alt' modifier.   The 'Add to Program' action above fails for me, but, when I reset the binding to 'Alt-L' using the F4 key, it works as expected.   In doing so, I noticed that the action's initial binding is using a lower-case 'l'.   After I set the binding, it becomes an upper-case 'L'.   This is probably the issue.

I'm not sure that's the issue. As mentioned, it works the second time I try it without touching anything. Besides that, I cannot assign any shortcut using said key (for example, when trying to assign something to Alt+i again, I see a caret (^) appear on the shortcut field, then it gets removed).

OK.  That is a bit different than what I am seeing.   For me, repeatedly pressing the action has no effect.
I tested on Mac 10.13.6.   What version of Mac are you using?

I'm on 10.14.6, and I can't use a compound binding either. I can do Ctrl+[Shift | Meta]+XXXX, but no Alt

I could see no obvious flaw in the code that handles changing keybindings that would produce the behavior you described regarding the '^' character.    If you are interested in helping debug, then you can run the attached script in Ghidra, providing us its output (obviously you must remove the '.txt' extension first).
PrintKeyScript.java.txt

Of course, happy to help! This is the output:
PrintKeyScript.java> Running...
PrintKeyScript.java> typed - Alt-l:
PrintKeyScript.java> 	ks: alt typed l
PrintKeyScript.java> 	parsed ks: l
PrintKeyScript.java> 	deserialized ks: pressed L
PrintKeyScript.java> typed - Ctrl-Alt-l:
PrintKeyScript.java> 	ks: ctrl alt typed l
PrintKeyScript.java> 	parsed ks: l
PrintKeyScript.java> 	deserialized ks: pressed L
PrintKeyScript.java> typed - Meta-Alt-l:
PrintKeyScript.java> 	ks: meta alt typed l
PrintKeyScript.java> 	parsed ks: l
PrintKeyScript.java> 	deserialized ks: pressed L
PrintKeyScript.java> pressed - Alt-l:
PrintKeyScript.java> 	ks: alt pressed L
PrintKeyScript.java> 	parsed ks: Alt-L
PrintKeyScript.java> 	deserialized ks: alt pressed L
PrintKeyScript.java> pressed - Ctrl-Alt-l:
PrintKeyScript.java> 	ks: ctrl alt pressed L
PrintKeyScript.java> 	parsed ks: Ctrl-Alt-L
PrintKeyScript.java> 	deserialized ks: ctrl alt pressed L
PrintKeyScript.java> pressed - Meta-Alt-l:
PrintKeyScript.java> 	ks: meta alt pressed L
PrintKeyScript.java> 	parsed ks: Meta-Alt-L
PrintKeyScript.java> 	deserialized ks: meta alt pressed L
PrintKeyScript.java> Finished!

Thanks.  I've modified the script to simulate the F4 key entry dialog.    Please run this script and attempt to enter 'Alt-l' and 'Meta-Alt-l' and provide the output.
PrintKeyScript.java.txt

For Alt+I (the field showed the caret for a second, then cleared it):
PrintKeyScript.java> Running...
PrintKeyScript.java> ks from text field: null
PrintKeyScript.java> keyPressed(): java.awt.event.KeyEvent[KEY_PRESSED,keyCode=18,keyText=⌥,keyChar=Undefined keyChar,modifiers=⌥,extModifiers=⌥,keyLocation=KEY_LOCATION_LEFT,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x12] on docking.KeyEntryTextField[,2,2,250x26,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=com.apple.laf.AquaTextFieldBorder@3b5ba003,flags=288,maximumSize=,minimumSize=,preferredSize=,caretColor=javax.swing.plaf.ColorUIResource[r=0,g=0,b=0],disabledTextColor=javax.swing.plaf.ColorUIResource[r=128,g=128,b=128],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=0,g=0,b=0],selectionColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=165,g=205,b=255],columns=20,columnWidth=12,command=,horizontalAlignment=LEADING]
PrintKeyScript.java> keyReleased(): java.awt.event.KeyEvent[KEY_RELEASED,keyCode=73,keyText=I,keyChar='ˆ',modifiers=⌥,extModifiers=⌥,keyLocation=KEY_LOCATION_STANDARD,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x0] on docking.KeyEntryTextField[,2,2,250x26,invalid,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=com.apple.laf.AquaTextFieldBorder@3b5ba003,flags=288,maximumSize=,minimumSize=,preferredSize=,caretColor=javax.swing.plaf.ColorUIResource[r=0,g=0,b=0],disabledTextColor=javax.swing.plaf.ColorUIResource[r=128,g=128,b=128],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=0,g=0,b=0],selectionColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=165,g=205,b=255],columns=20,columnWidth=12,command=,horizontalAlignment=LEADING]
PrintKeyScript.java> keyReleased(): java.awt.event.KeyEvent[KEY_RELEASED,keyCode=18,keyText=⌥,keyChar=Undefined keyChar,keyLocation=KEY_LOCATION_LEFT,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x12] on docking.KeyEntryTextField[,2,2,250x26,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=com.apple.laf.AquaTextFieldBorder@3b5ba003,flags=288,maximumSize=,minimumSize=,preferredSize=,caretColor=javax.swing.plaf.ColorUIResource[r=0,g=0,b=0],disabledTextColor=javax.swing.plaf.ColorUIResource[r=128,g=128,b=128],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=0,g=0,b=0],selectionColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=165,g=205,b=255],columns=20,columnWidth=12,command=,horizontalAlignment=LEADING]
PrintKeyScript.java> Finished!

For Meta+Alt+I (Meta+Alt+I was written on the field), pressing first Meta, then Alt, then I:
PrintKeyScript.java> Running...
PrintKeyScript.java> ks from text field: null
PrintKeyScript.java> keyPressed(): java.awt.event.KeyEvent[KEY_PRESSED,keyCode=157,keyText=⌘,keyChar=Undefined keyChar,modifiers=⌘,extModifiers=⌘,keyLocation=KEY_LOCATION_LEFT,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x9d] on docking.KeyEntryTextField[,2,2,250x26,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=com.apple.laf.AquaTextFieldBorder@3b5ba003,flags=288,maximumSize=,minimumSize=,preferredSize=,caretColor=javax.swing.plaf.ColorUIResource[r=0,g=0,b=0],disabledTextColor=javax.swing.plaf.ColorUIResource[r=128,g=128,b=128],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=0,g=0,b=0],selectionColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=165,g=205,b=255],columns=20,columnWidth=12,command=,horizontalAlignment=LEADING]
PrintKeyScript.java> ks from text field: null
PrintKeyScript.java> keyPressed(): java.awt.event.KeyEvent[KEY_PRESSED,keyCode=18,keyText=⌥,keyChar=Undefined keyChar,modifiers=⌘+⌥,extModifiers=⌘+⌥,keyLocation=KEY_LOCATION_LEFT,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x12] on docking.KeyEntryTextField[,2,2,250x26,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=com.apple.laf.AquaTextFieldBorder@3b5ba003,flags=288,maximumSize=,minimumSize=,preferredSize=,caretColor=javax.swing.plaf.ColorUIResource[r=0,g=0,b=0],disabledTextColor=javax.swing.plaf.ColorUIResource[r=128,g=128,b=128],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=0,g=0,b=0],selectionColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=165,g=205,b=255],columns=20,columnWidth=12,command=,horizontalAlignment=LEADING]
PrintKeyScript.java> ks from text field: meta alt pressed I
PrintKeyScript.java> keyPressed(): java.awt.event.KeyEvent[KEY_PRESSED,keyCode=73,keyText=I,keyChar='^',modifiers=⌘+⌥,extModifiers=⌘+⌥,keyLocation=KEY_LOCATION_STANDARD,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x202] on docking.KeyEntryTextField[,2,2,250x26,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=com.apple.laf.AquaTextFieldBorder@3b5ba003,flags=288,maximumSize=,minimumSize=,preferredSize=,caretColor=javax.swing.plaf.ColorUIResource[r=0,g=0,b=0],disabledTextColor=javax.swing.plaf.ColorUIResource[r=128,g=128,b=128],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=0,g=0,b=0],selectionColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=165,g=205,b=255],columns=20,columnWidth=12,command=,horizontalAlignment=LEADING]
PrintKeyScript.java> keyReleased(): java.awt.event.KeyEvent[KEY_RELEASED,keyCode=73,keyText=I,keyChar='^',modifiers=⌘+⌥,extModifiers=⌘+⌥,keyLocation=KEY_LOCATION_STANDARD,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x202] on docking.KeyEntryTextField[,2,2,250x26,invalid,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=com.apple.laf.AquaTextFieldBorder@3b5ba003,flags=288,maximumSize=,minimumSize=,preferredSize=,caretColor=javax.swing.plaf.ColorUIResource[r=0,g=0,b=0],disabledTextColor=javax.swing.plaf.ColorUIResource[r=128,g=128,b=128],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=0,g=0,b=0],selectionColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=165,g=205,b=255],columns=20,columnWidth=12,command=,horizontalAlignment=LEADING]
PrintKeyScript.java> keyReleased(): java.awt.event.KeyEvent[KEY_RELEASED,keyCode=18,keyText=⌥,keyChar=Undefined keyChar,modifiers=⌘,extModifiers=⌘,keyLocation=KEY_LOCATION_LEFT,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x12] on docking.KeyEntryTextField[,2,2,250x26,invalid,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=com.apple.laf.AquaTextFieldBorder@3b5ba003,flags=288,maximumSize=,minimumSize=,preferredSize=,caretColor=javax.swing.plaf.ColorUIResource[r=0,g=0,b=0],disabledTextColor=javax.swing.plaf.ColorUIResource[r=128,g=128,b=128],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=0,g=0,b=0],selectionColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=165,g=205,b=255],columns=20,columnWidth=12,command=,horizontalAlignment=LEADING]
PrintKeyScript.java> keyReleased(): java.awt.event.KeyEvent[KEY_RELEASED,keyCode=157,keyText=⌘,keyChar=Undefined keyChar,keyLocation=KEY_LOCATION_LEFT,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x9d] on docking.KeyEntryTextField[,2,2,250x26,invalid,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=com.apple.laf.AquaTextFieldBorder@3b5ba003,flags=288,maximumSize=,minimumSize=,preferredSize=,caretColor=javax.swing.plaf.ColorUIResource[r=0,g=0,b=0],disabledTextColor=javax.swing.plaf.ColorUIResource[r=128,g=128,b=128],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=0,g=0,b=0],selectionColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=165,g=205,b=255],columns=20,columnWidth=12,command=,horizontalAlignment=LEADING]
PrintKeyScript.java> Finished!

And same, but pressing Alt + Meta + I (just in case):
PrintKeyScript.java> Running...
PrintKeyScript.java> ks from text field: null
PrintKeyScript.java> keyPressed(): java.awt.event.KeyEvent[KEY_PRESSED,keyCode=18,keyText=⌥,keyChar=Undefined keyChar,modifiers=⌥,extModifiers=⌥,keyLocation=KEY_LOCATION_LEFT,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x12] on docking.KeyEntryTextField[,2,2,250x26,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=com.apple.laf.AquaTextFieldBorder@3b5ba003,flags=288,maximumSize=,minimumSize=,preferredSize=,caretColor=javax.swing.plaf.ColorUIResource[r=0,g=0,b=0],disabledTextColor=javax.swing.plaf.ColorUIResource[r=128,g=128,b=128],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=0,g=0,b=0],selectionColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=165,g=205,b=255],columns=20,columnWidth=12,command=,horizontalAlignment=LEADING]
PrintKeyScript.java> ks from text field: null
PrintKeyScript.java> keyPressed(): java.awt.event.KeyEvent[KEY_PRESSED,keyCode=157,keyText=⌘,keyChar=Undefined keyChar,modifiers=⌘+⌥,extModifiers=⌘+⌥,keyLocation=KEY_LOCATION_LEFT,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x9d] on docking.KeyEntryTextField[,2,2,250x26,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=com.apple.laf.AquaTextFieldBorder@3b5ba003,flags=288,maximumSize=,minimumSize=,preferredSize=,caretColor=javax.swing.plaf.ColorUIResource[r=0,g=0,b=0],disabledTextColor=javax.swing.plaf.ColorUIResource[r=128,g=128,b=128],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=0,g=0,b=0],selectionColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=165,g=205,b=255],columns=20,columnWidth=12,command=,horizontalAlignment=LEADING]
PrintKeyScript.java> ks from text field: meta alt pressed I
PrintKeyScript.java> keyPressed(): java.awt.event.KeyEvent[KEY_PRESSED,keyCode=73,keyText=I,keyChar='^',modifiers=⌘+⌥,extModifiers=⌘+⌥,keyLocation=KEY_LOCATION_STANDARD,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x202] on docking.KeyEntryTextField[,2,2,250x26,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=com.apple.laf.AquaTextFieldBorder@3b5ba003,flags=288,maximumSize=,minimumSize=,preferredSize=,caretColor=javax.swing.plaf.ColorUIResource[r=0,g=0,b=0],disabledTextColor=javax.swing.plaf.ColorUIResource[r=128,g=128,b=128],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=0,g=0,b=0],selectionColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=165,g=205,b=255],columns=20,columnWidth=12,command=,horizontalAlignment=LEADING]
PrintKeyScript.java> keyReleased(): java.awt.event.KeyEvent[KEY_RELEASED,keyCode=73,keyText=I,keyChar='^',modifiers=⌘+⌥,extModifiers=⌘+⌥,keyLocation=KEY_LOCATION_STANDARD,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x202] on docking.KeyEntryTextField[,2,2,250x26,invalid,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=com.apple.laf.AquaTextFieldBorder@3b5ba003,flags=288,maximumSize=,minimumSize=,preferredSize=,caretColor=javax.swing.plaf.ColorUIResource[r=0,g=0,b=0],disabledTextColor=javax.swing.plaf.ColorUIResource[r=128,g=128,b=128],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=0,g=0,b=0],selectionColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=165,g=205,b=255],columns=20,columnWidth=12,command=,horizontalAlignment=LEADING]
PrintKeyScript.java> keyReleased(): java.awt.event.KeyEvent[KEY_RELEASED,keyCode=157,keyText=⌘,keyChar=Undefined keyChar,modifiers=⌥,extModifiers=⌥,keyLocation=KEY_LOCATION_LEFT,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x9d] on docking.KeyEntryTextField[,2,2,250x26,invalid,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=com.apple.laf.AquaTextFieldBorder@3b5ba003,flags=288,maximumSize=,minimumSize=,preferredSize=,caretColor=javax.swing.plaf.ColorUIResource[r=0,g=0,b=0],disabledTextColor=javax.swing.plaf.ColorUIResource[r=128,g=128,b=128],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=0,g=0,b=0],selectionColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=165,g=205,b=255],columns=20,columnWidth=12,command=,horizontalAlignment=LEADING]
PrintKeyScript.java> keyReleased(): java.awt.event.KeyEvent[KEY_RELEASED,keyCode=18,keyText=⌥,keyChar=Undefined keyChar,keyLocation=KEY_LOCATION_LEFT,rawCode=0,primaryLevelUnicode=0,scancode=0,extendedKeyCode=0x12] on docking.KeyEntryTextField[,2,2,250x26,invalid,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=com.apple.laf.AquaTextFieldBorder@3b5ba003,flags=288,maximumSize=,minimumSize=,preferredSize=,caretColor=javax.swing.plaf.ColorUIResource[r=0,g=0,b=0],disabledTextColor=javax.swing.plaf.ColorUIResource[r=128,g=128,b=128],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=0,g=0,b=0],selectionColor=com.apple.laf.AquaImageFactory$SystemColorProxy[r=165,g=205,b=255],columns=20,columnWidth=12,command=,horizontalAlignment=LEADING]
PrintKeyScript.java> Finished!

There seems to be something odd going on with the key events here.   We should be seeing a series of events in this order: pressed, typed, released.   In your output you are showing only pressed and released events.
It is not clear how this can happen or how it would produce the results you are seeing, but something is definitely not working correctly.
I tested briefly on Mac and Linux and saw the expected output.   Perhaps there is a bug with the version of Java you are running?   If and when you have the desire and time, you could install a more recent Java to see if this fixes the issue.    Alternatively, as a workaround, if you don't need the'Alt' key bindings, then you can update those bindings that you use to have them no longer use 'Alt'.

I'm on Java 11.0.2, but I can of course try on something more modern, or on a patch version of the same (I think 11.0.3 is out).
I did a search on something similar and found https://bugs.openjdk.java.net/browse/JDK-8194873. However, it mentions that this bug was fixed on 11.0.1, but maybe what happened was that something related got broken in the process? Just thinking out loud, I of course have no proof :).
I'll try with Java 12 and report back.
Thanks for all your help, this it's definitely odd...

Ok, I've found what the problem is, although I'm not sure how this should be fixed.
My keyboard is set to Australian. It looks like that keyboard generates certain symbols when pressing Alt+certain keys. However, if I change to Spanish (as an example), the Alt+I combination works correctly.
I'm not sure where the bug is (as I'm guessing that a shortcut should precede any character typing?), as in Java or macOS or what, but anyway, I'll change to a US keyboard while using Ghidra as a workaround...

Hmm, spoke too soon it seems. I have the same issue with the US, US International and British variants, but not with the Spanish one, interestingly enough. Not sure how to workaround this in any case... I'm guessing then it's some macOS setting I have and you don't, or maybe some change between 10.13 and 10.14?

There are lot of moving parts there to consider.   The keyboard settings make sense to me, as it seems like the event is being consumed by the OS, never making it to Java.
We have a relatively few number of keys that use 'Alt' in the key binding.  You could remap any that you use for now.   It would be nice to know if there is some setting on the Mac that could be changed to fix this.

I was able to reproduce the issue on 10.13.6.   (I'm not sure why it wasn't happening earlier.)
See this thread for https://stackoverflow.com/questions/11876485/how-to-disable-typing-special-characters-when-pressing-option-key-in-mac-os-x
There are a handful of solutions there ranging from the complete 'remap the special keys using custom software' to the easy 'change the key binding to avoid the issue'.   (Interestingly, the older Apple JVMs worked as expected, but they are no longer supported.)
I am going to close this ticket, as this is not a Ghidra bug.

Thanks for all the help! I might also try at some point with Jetbrains JDK, they've fixed lots of Swing bugs so hopefully this is one of them.

We are experiencing similar issue (in our Java App so this won`t be ghidra problem, that some keys are not working with alt, for example alt+c, alt+s
And I can confirm that it works properly with Jetbrains JDK, so it would be good to find a bugreport for JDK, or try to report it if there is not any issue existing.


Support for Chrome headless?

Howdy 👋
Now that Chrome 59 is out of beta and people are thinking of replacing phantom in CI environments I was wondering if you folks were considering supporting Chrome headless? It might solve quite a few issues with rendering differences if it is a viable alternative.

The biggest disadvantage would be that it doesn't have any header/footer support (also the case for phantomjs 3). So we would have to drop that.

See https://github.com/marcbachmann/node-html-pdf/issues/309.


How can I print out the next holiday?

Hey guys and contributors,
is there any way to print out the next holiday?
For example, if there is no holiday today, the program prints the nearest holiday out.
Thank's for every help and suggestion in advance:)

HI @NoCodeAvaible ,
I believe you can just iterate to your holidays, this messy code my give you a hint
from datetime import date, timedelta
import holidays

brazlian_holidays = holidays.Brazil()
holiday = date.today() in brazlian_holidays
day = date.today()
while not holiday:
    day = day + timedelta(days=1)
    if day in brazlian_holidays:
        print(brazlian_holidays.get(day))
        break

OUTPUT
 Independência do Brasil

Hey @jusce17 ,
sorry for my late response thank you very very much for your help:)
Worked great for me:)


[Transform] Include a notification area

 Issue by maheeka
Thursday Aug 31, 2017 at 12:45 GMT
Originally opened as https://github.com/ballerina-lang/composer/issues/2985

Currently transform expanded view uses the global notification area. When there is a half baked scenario (e.g. typing in source view), alerts of transform will popup in source view. To avoid this, introduce a new alert system which is enclosed to transform perspective without using the global notification area. Currently alerts are disabled due to this reason

Transformer has been removed so this is no longer valid


fix: parse and clean archive badges and markdown links to URL

This will parse markdown links/badges to consistently capture a URLs from the archive and JOSS DOI fields.
Note that this adds https://github.com/papis/python-doi as a dependency
The solution I landed on here is to always coerce the link to a single URL since this is what the review templates expect here:
https://github.com/pyOpenSci/pyopensci.github.io/blob/d0b561cc493f6e4691f171b4460b0f7d4793267a/_includes/package-grid.html#L42
Since this now validates the DOI links, I needed to use a real/valid DOI for the test data so I used PyVista's DOI for these 😄
I also noticed that some review issues had the JOSS archive key as JOSS DOI and others have it as JOSS. The changes here account for that and ensure data are normalized to JOSS

To see the specific tasks where the Asana app for GitHub is being used, see below:

https://app.asana.com/0/0/1209011748769325

hey @banesullivan i'll leave some more specific feedback here but it looks like

this is erroring on a review (bibat) which means there is an outlier format in archive that isn't being handled as we would like it to be handled.

update-reviews
/Users/leahawasser/Documents/GitHub/pyos/pyosMeta/src/pyosmeta/parse_issues.py:489: UserWarning: ## Community Partnerships not found in the list
  warnings.warn(f"{section_str} not found in the list")
Error in review at url: https://api.github.com/repos/pyOpenSci/software-submission/issues/83
Traceback (most recent call last):

  File "/Users/leahawasser/Documents/GitHub/pyos/pyosMeta/src/pyosmeta/parse_issues.py", line 310, in parse_issues
    review = self.parse_issue(issue)

  File "/Users/leahawasser/Documents/GitHub/pyos/pyosMeta/src/pyosmeta/parse_issues.py", line 284, in parse_issue
    return ReviewModel(**model)

  File "/Users/leahawasser/mambaforge/envs/pyosmeta/lib/python3.10/site-packages/pydantic/main.py", line 214, in __init__
    validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)

pydantic_core._pydantic_core.ValidationError: 1 validation error for ReviewModel
joss
  Value error, Invalid archive URL:  [type=value_error, input_value='', input_type=str]
    For further information visit https://errors.pydantic.dev/2.10/v/value_error

--------------------
http://www.sunpy.org 'http://' replacing w 'https://'
http://sourmash.readthedocs.io/en/latest/ 'http://' replacing w 'https://'
http://movingpandas.org 'http://' replacing w 'https://'

When running it locally is that it hangs. I suspect it's slower because adding python-doi means we are parsing and checking urls / DOIs for each package. For now, we might consider adding more output so a user knows it's doing something. Maybe the package name it's processing in the terminal would be good to print out? I almost thought it was broken, and then I saw it was just processing but slower than it was previously.


Support multiple host:port parameters

I wouldn't do it this way; I'd use declare -A(associative array), to make the HOST:PORT connection more explicit.  And I'd refactor the wait_for function to not act upon the global $HOST and $PORT variables.

+1 for this

I have a fix for the issue without making a lot of changes to this PR. We can add the following piece of code after the switch case
if [[ "${#HOSTS[*]}" == "0" || "${#PORTS[*]}" == "0" ]]; then
    echo "Not waiting for any endpoints. Starting java application"
    if [[ $CLI != "" ]]; then
        exec $CLI
    fi
fi

TIMEOUT=${TIMEOUT:-30}
STRICT=${STRICT:-0}
QUIET=${QUIET:-0}

for i in "${!HOSTS[@]}"; do
    HOST=${HOSTS[$i]}
    PORT=${PORTS[$i]}
    wait_for
    if [ $? -ne 0 ]; then
        echoerr "$HOST:$PORT did not start, exiting the script"
        exit $?
    fi
done
RESULT=$?

if [[ $CLI != "" ]]; then
    if [[ $RESULT -ne 0 && $STRICT -eq 1 ]]; then
        echoerr "$cmdname: strict mode, refusing to execute subprocess"
        exit $RESULT
    fi
    exec $CLI
else
    exit $RESULT
fi```

@Forever-Young can you fix conflicts? 👍

Hey @Forever-Young
You can use the Wait4X, It's already supported multiple host checking.
Example:
wait4x tcp <IP_ADDRESS>:80 <IP_ADDRESS>:53 --log-level debug


Add export XML/CSV command and parsers

Re-opened this PR for adding the export commands again

Coverage decreased (-4.1%) to 66.695% when pulling cdb2c9d805a1f751a4984948b62cf8ea87d05aac on Scrubbius:master into f77c7fd2b91967c24b1575c090adc70de1823553 on CS2103-AY1819S1-W16-2:master.

duplicated


Set ConfigSource in gitresolver

Changes
/kind feature
Related to https://github.com/tektoncd/pipeline/issues/5522
Prior, a field named Source was introduced to ResolutionRequest status to record the source where the remote resource came from. And the individual resolvers need to implement the Source function to set the correct source value. But gitresolver just returns nil.
Now, we return correct source value with the 3 subfields: url, digest and entrypoint

If users choose to use anonymous cloning, the url is just user-provided value for the url param. If scm api is used, it would be the clone URL of the repo available from scm repo service. Finally the url is
formatted to the SPDX download format.
Digest algorithm name is fixed value "sha1" and the hex-encoded value is the actual commit sha at the moment of resolving even if users provide a tag/branch name for the revision param.
Entrypoint is the user-provided value for the path param.

Signed-off-by: Chuang Wang<EMAIL_ADDRESS>
Submitter Checklist
As the author of this PR, please check off the items in this checklist:

[x] Has Docs included if any changes are user facing
[x] Has Tests included if any functionality added or changed
[x] Follows the commit message standard
[x] Meets the Tekton contributor standards (including
functionality, content, code)
[x] Has a kind label. You can add one by adding a comment on this PR that contains /kind <type>. Valid types are bug, cleanup, design, documentation, feature, flake, misc, question, tep
[x] Release notes block below has been updated with any user facing changes (API changes, bug fixes, changes requiring upgrade notices or deprecation warnings)
[ ] Release notes contains the string "action required" if the change requires additional action from users switching to the new release

Release Notes
Set ConfigSource value for gitresolver to record the source where the remote resource came from.

/approve

/retest

/retest

/assign @wlynch
Please take a look at if the value set for configsource in gitresolver meets our needs on Chains side. Thank you!!

/retest

/retest

/retest


Plugin crashes game if loaded at start

Since 6.4 (and Dalamud <IP_ADDRESS>) this plugin has consistently caused the game to crash if enabled when entering the game world initially.
So I run XIVLauncher -> main menu -> character select screen -> click my character and as soon as the game shows the loading image it crashes. I've tested it with no other plugins installed, and it's still same issue. No errors are logged in dalamud.log, the game just exits.
Disabling Astro in the plugin loader module that shows in the game's boot main menu gets rid of the error and the game loads normally. Re-enabling Astro once I've logged in works fine and won't crash the game. It's only during the initial loading into the game world.

Should be updated for 6.4 now and that should fix the crashing issue


think about errors for duplicate packets in ReceivedPacketHandler

Especially, but not only, what happens if we receive a belated packet after receiving a StopWaitingFrame with a LeastUnacked higher than it's packet number.

Now, the ReceivedPacketHandler throws two different kinds of errors for:

genuinely duplicate packets
packets smaller than the LeastUnacked of the highest StopWaiting (in that case we can't determine if the packet is really a duplicate, or just arrives late. It doesn't matter since we're ignoring it anyway.)

What did I mean by "but not only"?

I can't think of any other case where a duplicate packet would cause a problem. Closing this for now.


Rename during CppSharp generation

Resolves #5

I'll probably publish a version 2.0.0 in a couple days if all goes well, though before that I'd like to see if I can't make it work on Mac.

Sounds good

Thank you for all you've done, both in the past couple weeks and prior to me finding the project.

you're welcome :D

BTW if you want a little more recognition for the project, CppSharp has a readme section dedicated to users like us.
https://github.com/mono/CppSharp?tab=readme-ov-file#users

I'll probably publish a version 2.0.0 in a couple days if all goes well, though before that I'd like to see if I can't make it work on Mac.

How are things going?


Updated user interface of the existing dictionary website

🛠 Issue (Number)

Closes #1258
Description
Please include a summary of the change. Please also include relevant motivation and context. List any dependencies that are required for this change.

Added a navbar to the website.
Changed the color theme for better look.
Made the ui more user friendly and responsive

Type of change

[X] Bug fix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Checklist:

[X] I have made this from my own
[ ] I have taken help from some online resourses
[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have made corresponding changes to the documentation
[X] My changes generate no new warnings
[X] The title of my pull request is a short description of the requested changes.

ATTACH SCREEN-SHOTS / DEPLOYMENT LINK

Resolve merge conflicts and make fresh PR


Links to pre-trained models are expired

Hi, authors, could you please update the links to download pre-trained models?

Thanks for attention! Update.


release > main

we shouldn't merge main into this before merging it into main because now I don't think it represents what was actually released

You're 100% right; it was an accident.


doesn't work with multi-process DataLoader

Hi,
I'm trying to speed up training by using a multi-processing in the DataLoader, however this throws an error. Any insight would be appreciated.
Here is a snippet of code
trainloader = torch.utils.data.DataLoader(train_dataset, batch_size=128, shuffle=True)
valloader = torch.utils.data.DataLoader(val_dataset, batch_size=128, shuffle=True, num_workers = 4, pin_memory=True)

learning_rule = KrotovsRule()
optimizer = Local(named_params=model.named_parameters(), lr=0.01)

evaluator = HebbianEvaluator(model=model, score_name='accuracy',
                                score_function=lambda engine: engine.state.metrics['accuracy'], epochs=1, supervised_from=-1)

trainer = HebbianTrainer(model=model, learning_rule=learning_rule, optimizer=optimizer, supervised_from=-1, device='cuda')

evaluator.attach(trainer.engine, Events.EPOCH_COMPLETED(every=1), trainloader, valloader)

trainer.run(train_loader=trainloader, epochs=1)

Here is the error:
Traceback (most recent call last):
  File "cornet_hebbian_training.py", line 84, in <module>
    trainer.run(train_loader=valloader, epochs=1)
  File "/home/vayzenbe/GitHub_Repos/GiNN/Models/pytorch_hebbian/trainers.py", line 31, in run
    self.engine.run(train_loader, max_epochs=epochs)
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/ignite/engine/engine.py", line 702, in run
    return self._internal_run()
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/ignite/engine/engine.py", line 775, in _internal_run
    self._handle_exception(e)
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/ignite/engine/engine.py", line 469, in _handle_exception
    raise e
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/ignite/engine/engine.py", line 745, in _internal_run
    time_taken = self._run_once_on_dataset()
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/ignite/engine/engine.py", line 850, in _run_once_on_dataset
    self._handle_exception(e)
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/ignite/engine/engine.py", line 469, in _handle_exception
    raise e
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/ignite/engine/engine.py", line 801, in _run_once_on_dataset
    self.state.batch = next(self._dataloader_iter)
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 517, in __next__
    data = self._next_data()
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 1199, in _next_data
    return self._process_data(data)
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 1225, in _process_data
    data.reraise()
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/torch/_utils.py", line 429, in reraise
    raise self.exc_type(msg)
RuntimeError: Caught RuntimeError in DataLoader worker process 0.
Original Traceback (most recent call last):
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/torch/utils/data/_utils/worker.py", line 202, in _worker_loop
    data = fetcher.fetch(index)
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 44, in <listcomp>
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/home/vayzenbe/GitHub_Repos/GiNN/Models/load_without_faces.py", line 62, in __getitem__
    tensor_image = self.transform(image)
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/torchvision/transforms/transforms.py", line 60, in __call__
    img = t(img)
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/torchvision/transforms/transforms.py", line 869, in forward
    i, j, h, w = self.get_params(img, self.scale, self.ratio)
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/torchvision/transforms/transforms.py", line 831, in get_params
    log_ratio = torch.log(torch.tensor(ratio))
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/torch/cuda/__init__.py", line 161, in _lazy_init
    "Cannot re-initialize CUDA in forked subprocess. To use CUDA with "
RuntimeError: Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you must use the 'spawn' start method

Have you tried using the spawn start method, as suggested in the error?
torch.multiprocessing.set_start_method('spawn')

See https://pytorch.org/docs/stable/notes/multiprocessing.html#cuda-in-multiprocessing

Yes I did. The issue seems somewhat specific to pytorch-hebbian , since I don't have any issues parallelizing the dataloader when training other types of models.
I also get an error when I remove the num_workers argument and just use pin_memory, so the issue might not be specific to parallelization, but something more general about how inputs are being read. Again I don't normally have an issue with these same dataloaders with other models.
Overall, this project is super cool and useful, I'm just trying to speed up training where I can. Thanks!
Current run is terminating due to exception: cannot pin 'torch.cuda.LongTensor' only dense CPU tensors can be pinned
Engine run is terminating due to exception: cannot pin 'torch.cuda.LongTensor' only dense CPU tensors can be pinned
Traceback (most recent call last):
  File "cornet_hebbian_training.py", line 92, in <module>
    trainer.run(train_loader=trainloader, epochs=1)
  File "/home/vayzenbe/GitHub_Repos/GiNN/Models/pytorch_hebbian/trainers.py", line 31, in run
    self.engine.run(train_loader, max_epochs=epochs)
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/ignite/engine/engine.py", line 702, in run
    return self._internal_run()
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/ignite/engine/engine.py", line 775, in _internal_run
    self._handle_exception(e)
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/ignite/engine/engine.py", line 469, in _handle_exception
    raise e
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/ignite/engine/engine.py", line 745, in _internal_run
    time_taken = self._run_once_on_dataset()
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/ignite/engine/engine.py", line 850, in _run_once_on_dataset
    self._handle_exception(e)
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/ignite/engine/engine.py", line 469, in _handle_exception
    raise e
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/ignite/engine/engine.py", line 801, in _run_once_on_dataset
    self.state.batch = next(self._dataloader_iter)
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 517, in __next__
    data = self._next_data()
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 559, in _next_data
    data = _utils.pin_memory.pin_memory(data)
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/torch/utils/data/_utils/pin_memory.py", line 55, in pin_memory
    return [pin_memory(sample) for sample in data]
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/torch/utils/data/_utils/pin_memory.py", line 55, in <listcomp>
    return [pin_memory(sample) for sample in data]
  File "/home/vayzenbe/anaconda3/lib/python3.7/site-packages/torch/utils/data/_utils/pin_memory.py", line 47, in pin_memory
    return data.pin_memory()
RuntimeError: cannot pin 'torch.cuda.LongTensor' only dense CPU tensors can be pinned

The issue might be related to this line. When the device is set to 'cuda', tensors will be cuda tensors by default. pin_memory=True should only be used for data loaded on CPU. Online I see users reporting similar issues regarding the combination of torch.set_default_tensor_type() and multiprocessing (https://discuss.pytorch.org/t/pin-memory-vs-sending-direct-to-gpu-from-dataset/33891/2).
A possible fix to circumvent the use of torch.set_default_tensor_type() is to pass the device parameter around and make sure all tensors are created with the correct device parameter. Feel free to submit a PR if you've found a solution for your use case.
I'm glad to hear you find the framework useful! It was built with my use case in mind but I look forward to contributions to expand it to other cases as well.


Overview of coupling of this class regarding to package hierarchy of other classes

Idea is to have an overview if this class is coupled or kind of "free" of incoming references from other package hierarchies.
A first proof of concept is in branch packageHierarchyReferences that adds the indicator "PkgRefs" to the toolbar with content
this.samePackage + "/" + this.inHierarchy + "/" + this.otherHierarchy

Currently, there's a bug. References from same class are counted to samePackage indicator.

Todos:

[ ] Problem: Just one ToolWindow, but multiple graphs. For each graph an own ToolWindow tab?
[ ] Improvement: Instead of tabs for different reference types (like same, other hierachy etc.) just one tab and filter for the reference types. Alternative, instead of filter a tree.


Name autocomplete makes it hard to enter names that start with common words

There's a place nearby called "We Are Nuts". When I try to type "We" + space into the name field, it autocompletes to a store called "WE - somethingsomething", capitalizes the e for me, and it's hard to go back and fix that incorrect capitalization:

Scope creeping on this issue (#5568 is related)...

fix keyboard handling of up/down arrow and escape when a combobox is open (these keys should not do other iD things like trying to pan the screen or return to browse mode)
escape should get rid of whatever autocompletion selected text is there
up/down key navigation seems to not class the top item as selected if the list is too long / or scroll the item into view / or something
this means that tabbing out of the list with the wrong item selected can accept an item that is not the one selected/displayed in the input field

I've added an option to disable autocomplete behavior.. I might keep it or get rid of it depending on how the combobox "feels" after I make it do all the things that I expect a combobox to do.  We could also start out autocompleting and then maybe put the combo into "no autocomplete" mode after the user starts backspacing or something.


chore(governance): add Leandro as maintainer

Issue number: #1009
Summary
Changes
As title says
User experience

Please share what the user experience looks like before and after this change

Checklist
If your change doesn't seem to apply, please leave them unchecked.

[x] Meet tenets criteria
[ ] I have performed a self-review of this change
[ ] Changes have been tested
[ ] Changes are documented
[x] PR title follows conventional commit semantics

Is this a breaking change?
RFC issue number:
Checklist:

[ ] Migration process documented
[ ] Implement warnings (if it can live side by side)

Acknowledgment
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.

View rendered MAINTAINERS.md

🎉


Followed Channel list mistakenly centered on smaller screens?

Desktop
Log out
When the app's width is wide enough, the Followed List in the sidebar is left-justified
Reduce the app's width, then open the Sidebar.  The list became centered.  Might be intentional, but looks better left-justified.

@eggplantbren also noticed this recently, thanks for filing!

I also see this on mobile mode.


When the idy is integer it is not detected as idy

#Sometimes hashids returns a hash which looks like an integer, and so the find function thinks it's a regular id resulting in a false 404

Hi @burgalon ,
Could you provide me the class name and the id that generates the "fake" number id?
Are you using find or findy?

When Hashids encode like 80 (non alphabet id) it seems to get error.
https://github.com/wbotelhos/idy/blob/4deb728fb5aa59c74f9a488da6a59ad73e4241ca/lib/idy/extension.rb#L27

I got an example just now: Invoice.new(id: 1).idy
I'll check it. (:

@burgalon and @corona6 ,
The find method can search via string like this: Invoice.find '1', so it looks like impossible say if '1' was generated by idy or by other code, so the best thing to do here is deprecated the overrided find method e use just the findy to make sure it will search via Idy.
Invoice.findy Invoice.last.idy solves the problem.


Fix viadot vulnerabilities

To promote viadot image (as velux-nesso in Velux organization), we need to pass security scans. Right now viadot package is failing them:
https://github.com/VELUX/nesso-prefect/actions/runs/10267519852/job/28409471541
      PACKAGE        TYPE       VERSION        SUGGESTED FIX    CRITICAL  HIGH  MEDIUM  LOW  NEGLIGIBLE  EXPLOIT
  pyarrow           python       10.0.1           v14.0.1          1       0      0      0       0          0
  setuptools        python       69.1.0           v70.0.0          1       0      0      0       0          0
  setuptools        python       69.1.0           v70.0.0          1       0      0      0       0          0
  setuptools        python       65.5.1           v70.0.0          1       0      0      0       0          0
  libgssapi-krb5-2    os    1.18.3-6+deb11u4  1.18.3-6+deb11u5     0       1      1      0       3          0
  libk5crypto3        os    1.18.3-6+deb11u4  1.18.3-6+deb11u5     0       1      1      0       3          0
  libkrb5-3           os    1.18.3-6+deb11u4  1.18.3-6+deb11u5     0       1      1      0       3          0
  libkrb5support0     os    1.18.3-6+deb11u4  1.18.3-6+deb11u5     0       1      1      0       3          0
  idna              python        3.4              v3.7.0          0       1      0      0       0          0
  requests          python       2.31.0           v2.32.0          0       1      0      0       0          0

Critical issues are only for pyarrow and setuptools, but if it's not a big deal, we should also update other packages.

@k-wolski

Python deps
I'll add the changes to the 2.0 branch soon. Reg setuptools, this needs to be added at the Velux repo level (in its requirements.txt), so it will be installed on top of viadot-azure.
OS deps
These should be upgraded automatically when building a new image, since we run apt update && apt upgrade in the Dockerfile.

Updated packages inside velux-nesso like this: https://github.com/VELUX/nesso-prefect/commit/ed0cb62c5ac1691b99cb96047231871dec7209d8
RUN pip install --no-cache-dir --upgrade setuptools>=70.0.0 pyarrow==14.0.1

But still old packages are lying on a system and sysdig scanner is failing because of that.

➜  nesso-prefect git:(workflow_update) ✗ docker run -it -u 0:0 velux.jfrog.io/docker-dev/nesso/velux-nesso:2.0.0-alpha.9.1 find . -type f -name "*pyarrow*"
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
./.cache/uv/simple-v11/index/b2a7eb67d4c26b82/pyarrow.rkyv
./.cache/uv/wheels-v1/index/b2a7eb67d4c26b82/pyarrow/pyarrow-10.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.msgpack
➜  nesso-prefect git:(workflow_update) ✗ docker run -it -u 0:0 velux.jfrog.io/docker-dev/nesso/velux-nesso:2.0.0-alpha.9.1 find . -type f -name "*setuptools*"
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
./.cache/uv/archive-v0/PukYs5xj9QQhYZCKUEuqw/virtualenv/seed/wheels/embed/setuptools-68.0.0-py3-none-any.whl
./.cache/uv/archive-v0/PukYs5xj9QQhYZCKUEuqw/virtualenv/seed/wheels/embed/setuptools-69.0.2-py3-none-any.whl
./.cache/uv/archive-v0/kR7HhHeKMS-V5trjXcWM-/cffi/setuptools_ext.py
./.cache/uv/archive-v0/vT17GuhvKjFvmADXV-GSV/pip/_internal/utils/setuptools_build.py
./.cache/uv/archive-v0/SyvYDjZc00yAvfGu_Gmls/setuptools/tests/test_setuptools.py
./.cache/uv/archive-v0/SyvYDjZc00yAvfGu_Gmls/setuptools/_vendor/wheel/_setuptools_logging.py
./.cache/uv/simple-v11/index/b2a7eb67d4c26b82/setuptools.rkyv
./.cache/uv/wheels-v1/index/b2a7eb67d4c26b82/setuptools/setuptools-72.1.0-py3-none-any.http
./.cache/uv/wheels-v1/index/b2a7eb67d4c26b82/setuptools/setuptools-70.0.0-py3-none-any.msgpack
./.cache/uv/wheels-v1/index/b2a7eb67d4c26b82/setuptools/setuptools-72.1.0-py3-none-any.msgpack
./rye/self/lib/python3.10/site-packages/cffi/setuptools_ext.py
./rye/self/lib/python3.10/site-packages/virtualenv/seed/wheels/embed/setuptools-68.0.0-py3-none-any.whl
./rye/self/lib/python3.10/site-packages/virtualenv/seed/wheels/embed/setuptools-69.0.2-py3-none-any.whl
./rye/self/lib/python3.10/site-packages/pip/_internal/utils/setuptools_build.py
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>


[in_app_purchase] There's no way - other than completePurchase - to remove/clear a purchase for which verification failed

From the plugin README:

After verifying the purchase receipt and the delivering the content to the user it is important to call InAppPurchase.completePurchase to tell the underlying store that the purchase has been completed. Calling InAppPurchase.completePurchase will inform the underlying store that the app verified and processed the purchase and the store can proceed to finalize the transaction and bill the end user's payment account.

Now, if the verification of the purchase receipt failed, e.g. due to a connection error when attempting to contact the backend that does the verification, then as implied by the above, completePurchase should not be called, as the underlying store will then proceed to finalize the transaction and bill the end user's payment account, even though the purchase hasn't been verified and processed.
But this leaves the question of how to remove/clear the failed purchase, given that completePurchase appears to be the only way to do so. Not clearing it leads to the following exception if the user makes another attempt at purchasing the product:

There is a pending transaction for the same product identifier. Please either wait for it to be finished or finish it manually using completePurchase to avoid edge cases.

In other words, there are seemingly only two options for how to deal with a failed purchase:

Don't call completePurchase purchase on it, in which case the user is unable to reattempt making the purchase, or
Do call completePurchase purchase on it, in which case the underlying store is erroneously informed that the purchase has been successfully verified and processed.

Neither option makes sense from a usability standpoint; is this correct, or am I missing something?

Thanks for the report @jesper372
Can you provide on which platform are you seeing this behavior ? (Android or iOS )

@darshankawar Apologies; I'm closing this, because I now understand that the logic underlying the behaviour described above is that once a purchase has been cleared by the underlying store, the verification of the purchase really must succeed; if not immediately (e.g. because the backend cannot be contacted), then at least subsequently. Thus, the purchase should remain in the queue until the verification does get done, and completePurchase has been called on it.


What is the point of checking twice whether there are bounding boxes for the same object or not?

We already check for them in the first place(PhoneARCamera.cs):

And then we check again:

Or am I missing something? By deleting the latter it works just as fine.

If I'm correct the later part should filter the bounding boxes over several frames while the first part only looks at the current frame. I do notice much more bounding boxes when deleting the later part.
However, with the later part enabled, the application freezes on my iPhone when there or more then 3 bounding boxes. When I remove the following line it works, but this also disables the filtering:
this.boxSavedOutlines = temp;
Does it work for you?
Does someone have an idea on what may cause the application to freeze? I thought of some multithreading conflict to the List, but add lock (also to the AnchorCreator.cs) do not seem to work


Editor is not focused when selecting a file from Open Editors panel

Issue Type: Bug

Open two files
Switch from one of the files to another using Open Editors panels

Expected behavior: editor is focused after the file is selected.
Actual behavior: focus remains in sidebar.
Since Open Editors panel is used as an alternative to tabs for switching between opened files, it should behave the same way and focus the editor immediately after a file is selected.
VS Code version: Code 1.26.1 (493869ee8e8a846b0855873886fc79d480d342de, 2018-08-16T18:34:20.517Z)
OS version: Linux x64 4.13.0-46-generic

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz (4 x 3768)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: disabled_softwarevideo_decode: unavailable_softwarevideo_encode: unavailable_softwarewebgl: enabledwebgl2: enabled

Load (avg)
2, 1, 0

Memory (System)
7.69GB (0.49GB free)

Process Argv
/usr/share/code/code --unity-launch

Screen Reader
no

VM
0%

Closing as designed, we never move focus out of a list/tree when clicking, otherwise you could not give that widget focus and use keyboard to navigate.

Thanks @bpasero, I understand that decision. However I feel like it makes vscode a little less usable without tabs, since a user basically loses his cursor position within a file every time he switches files. Possibly there's room for improvement there.

You can double-click to move focus into the editor if that helps.