feat(table): create save view - statefulTable

Closes #1210
Summary
This PR ties together all the components needed to let the user Create, Save, List, Select and manage views in a new story.
Change List (commits, features, bugs, etc)

Created a new story for Create, Save and Manage views for a StatefulTable. The story simulates a small app
with its own state and includes plenty of explanatory comments.
Created a new story for Create, Save and Manage views for a normal Table. The story simulates a small app
with its own state and includes plenty of explanatory comments, but not all view altering callbacks have been implemented (because that would be building a new stateful table)
Added a column resize reducer so that the StatefulTable could manage the state of the current columns width. This was needed to export the current widths.
Added an option hasUserViewManagement to the Table/StatefulTable that enables some new functionality needed for this feature. The option allows backwards compatibility and reduces the risk of introducing regressions.
Added a onUserViewModified callback to Table/StatefulTable that is called each time the view prop, column prop or search value is changed. Only active if hasUserViewManagement=true.
Added a ref to store the current searchValue in Table. This is needed since the current search value is not managed by the StatefulTable via the props like normal, but in the Carbon ToolbarSearch where we can't access it.
Modified the tableRegister reducer to read ordering and default value from the state (when hasUserViewManagement is active).
Modified TableSaveViewForm to prevent form submission which was redirecting the page on enter.
Modified TableSaveViewModal to merge the i18n prop with the default values.
removed clipping from the table toolbar that was preventing the TableViewDropdown from showing correctly
Added a wrapper with a style prop to the TableViewDropdown so that we could set some demo styles
Carefully Updated tests where needed

Acceptance Test (how to verify the PR)

Verify the new story 'watson-iot-table--stateful-example-with-create-save-views' by exploring all the functionality compared to the specs and common sense.
Verify that the existing Table stories still work as expected.

A note on rendering
When a user first modifies a filter (or change sort, types in search etc), the Table/StatefulTable render function is called. The table triggers callback onUserViewModified which in the story updates state selectedViewEdited and the table render function is called. The selectedViewEdited is passed as a prop to the TableViewDropdown which is updated and the table render function is called again. So in total there could be 3 rendering calls, but this only happens if the change modifies the selectedViewEdited. There is nothing specific in TableViewDropdown that causes this additional render except the fact that it depends on the selectedViewEdited and is passed in as a node to the table via the customToolbarContent.

:tada: This PR is included in version 2.118.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Updates to classes not loading unless you refresh the page

Updates to classes not loading unless you refresh the page.
Is this by design?

Can you share a repro?

https://github.com/CharlesOkwuagwu/vite-demo

@CharlesOkwuagwu Just did a few changes, can you bump to 0.0.6 and test out first? I will look into it if it still doesn't work.

@CharlesOkwuagwu Just did a few changes, can you bump to 0.0.6 and test out first? I will look into it if it still doesn't work.

I will try it out.

@CharlesOkwuagwu Just did a few changes, can you bump to 0.0.6 and test out first? I will look into it if it still doesn't work.

Hi it is still the same.

Are you using Windows?

yes, Windows 10

This does seem to work now with the very latest commits.
Also, can I say how cool this is?   Every time I started up vitesse,. it was like is there any way to avoid this build time and then this pops up :)

OK cool! Changes to class show up immediately now in the .vue files.
However changes to class on body in index.html still need a full page refresh.

@CharlesOkwuagwu I didn't implement the hmr for index.html as I thought it would trigger full refresh anyway. Is it longer a case in the latest vite?

@antfu This is fine the way it is! Changes to class show up as expected in .vue files.
A refresh for index.html is fine!


Allow some tabs to be open only once

For some tabs, it make sense to allow only a single instance of particular tab for specific parameters. Those are tabs without changeable user data:

keymap viewer
schema viewer

Support for this logic will be partially implemented in #110 using tab ids. Depending on uniqueness of a tab id it will create new tab or use existing one. However, few things need to be finished:

[ ] select old tab if new tab was requested with id of that old tab
[ ] uniqueness of schema viewer depending on data pointer


Simplify enter / leave processing with callback: possible to pass the event type into the callback?

Hi Silvestre,
quite a beatiful OnScreen you made :1st_place_medal:
Could it be possible to pass the event type into the callback invocation? This would have saved us from making 2 callback for 2 events, whereas there could be the only one callback. Though this does not deny 2 callback anyhow.
Now the use case looks like:
          var os = new OnScreen();
          os.on('enter', 'footer', cbEnter);
          os.on('leave', 'footer', cbLeave);

          function cbEnter(elt) {
              console.log('process `enter` event');
              addClass(elt, 'onScreen');
              console.log(elt + " enters the screen");
              // etc.
          }

          function cbLeave(elt) {
              console.log('process `leave` event');
              removeClass(elt, 'onScreen');
              console.log(elt + " leaves the screen");
              // etc.
          }

With event name available from within callback it could look a bit shorter and easier to read:
          var os = new OnScreen();
          os.on('enter', 'footer', cbProcessOnScreenEvent);
          os.on('leave', 'footer', cbProcessOnScreenEvent);

          function cbProcessOnScreenEvent(elt, osevt) {
              console.log(); 'process '+ osevt + ' event';
              osevt === `enter` ? elt.addClass('onScreen') : elt.removeClass('onScreen');
              console.log(elt + ' ' + osevt + ' the screen');
          }

Notice osevt event name passed into the callback.
We replace two named callbacks with one, simplify the code a lot, delete repeating parts, and make it more readable / maintainable.
What do you think?
Best regards,
Val

Added in b3a16f9 … still unreleased though 😃

aaaaand… it's available on 1.3.0 🎉

Thanks a lot. Will enjoy testing it within a week or so :100:


Secured Rest booster instructions should be runtime specific #122

PR for #122

Looks good overall. Will take an editing pass after the merge.


Sound doesn't work in Super Jumper on iOS device

Strange...

All good on my end @badlogic, sure it's not muted?


There aren’t any releases here

https://github.com/yonahforst/react-native-permissions/releases

That would be nice at least to have git tags :)

agree ^

I don't really understand how they work. I'll have to read up on them

It's pretty simple. A "github release" is just a git tag with release notes.
So first thing is to just doing a git tag when you publish a version, and push your tag on github. Then you will see small git tags on the release page. Then you can edit those tags and transform them into releases.
Some cool tools exist to make this transparent for you like np or my try on this npmpub that can do npm publish + github release from a CHANGELOG.md in one command :)

Similar question, why there's no corresponding tag specified in the podspec? We're using Podfile to manage third party libs including react native ones, instead of linking from node_modules. Is it possible to have at least tags for stable versions?

We forked the repo to have our own tags and pushing the podspec to our private spec repo, but it's still nice to have official tags.

@yonahforst can you please provide git tag or change logs of version 1.0.1. currently, i am using version 1.0.0. which version you preferred to use?.

I will create release for every new releases. Blame me if I forgot! 😄

First one: https://github.com/yonahforst/react-native-permissions/releases/tag/1.0.2 !


Feature request: explicit renaming list

It would be useful to have a command option for a list of things that should be renamed, in case they aren't.  Since this would be useful primarily as a workaround for GLSL features that Shader_Minifier does not yet understand, the renamings should happen as for variables at global scope, with any instance of the identifier token being assumed a reference to this global item.
For example, from #237 :
buffer block_name{
  int member_name[];
};

shader_minifier --always-rename-list block_name,member_name would have these identifiers shortened.  The required assumption that any instance of the identifier (as a C preprocessor would see it) is indeed a reference is to ensure that no further understanding by the tool of potentially unknown or unimplemented language features is needed.

Closing in favor of #378.

Closing in favor of #378.


Add jupyterlite support

[x] Set up default configuration
[x] Look into customizations
[ ] Pilot Real Time Collaboration

Currently, Jupyterlite is not supporting the magic %load, used for showing the solutions in the notebooks.


Cairo error on rendering

The following code (taken directly from the example) fails with the error "user error (invalid value for stride)":
import FRP.Helm
import qualified FRP.Helm.Window as Window

render :: (Int, Int) -> Element
render (w, h) = collage w h [move (100, 100) $ filled red $ square 64]

main :: IO ()
main = do
        engine <- startup defaultConfig
        run engine $ render <~ Window.dimensions engine

This error does not occur when the line is changed to
render (w,h) = collage w h []

I am running Gentoo Linux with the Awesome window manager (though I don't think that the WM matters) with Cairo <IP_ADDRESS> and Helm 0.6.1 from hackage, tough it also fails with the latest source from git.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/4944083-cairo-error-on-rendering?utm_campaign=plugin&utm_content=tracker%2F290443&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F290443&utm_medium=issues&utm_source=github).

This should be fixed in Helm 1.0.0. Feel free to reopen if it's still broken.


how to Import Files .css and .js global

Vue.js version
2.0.2
Reproduction Link

Steps to reproduce
What is Expected?
What is actually happening?

Your issue seems usage/support question. If you want to ask such question, please use our forum or gitter. The issue list is reserved exclusively for bug reports and feature requests.
Thanks.

Im Sorry


Fixed FFMpeg for powershell v2

Added if statement to make FFMpeg install script work with powershell v2

@godofgrunts thank you for your contribution.  I have merged this via this commit https://github.com/chocolatey/chocolatey-coreteampackages/commit/981c4a3b06707e6ec7f70ac16cc64e6f4ad8d8c3 since I wanted to fix up the additional merge commit that you had.  As a result, I will close this PR, but your work have been submitted into the repo.  Thanks!


Firefox is duplicating everything!

https://www.evernote.com/l/AHQb4vQ_IVJFcJIVCLyQbEKfsI0MknLAI-AB/image.png

Closing as this is directly tied to #585

Actually wasn't tied to #585, but resolved none the less!


Enhance metadata verification

Description
Currently the output of staged metadata verification looks like this after init
Outputting metadata verification at /home/asraa/git/test-sigstore-root/ceremony/2022-03-09...

Verifying root...
	Contains 0/3 valid signatures

Verifying snapshot...
	missing metadata snapshot.json

Verifying targets...
	Contains 0/3 valid signatures

Verifying timestamp...
	missing metadata timestamp.json

Add expirations
Add version information
Add any signature's key IDs
Add delegations

Most fixed in Now fixes https://github.com/sigstore/root-signing/pull/139/commits/cc17fbfa6af3a193d2f909e97b9b75a6ea4150d6
Remaining: Add delegations (high priority) and signer key IDs (low priority)

Now done in v3-staging
https://github.com/sigstore/root-signing/pull/177


TS-4380: traffic_ctl support for server start and stop

Add traffic_ctl support for server start and server stop subcommands. Initially I thought that these weren't used, but the SaltStack traffic server module use them.

Merged.


Image centering implementation

I have implemented image centering with cropping if image is too big. Need to be fully tested, but now works.

Thank for your pull-request and sorry for late reply.
Merge this pull-request.


Feat[CR-1331]: Need a new NLP for TV devices to long press keys

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


fix(cli): go.mod parse and init command template

Codecov Report

Merging #416 (715aadc) into master (2386b3e) will increase coverage by 0.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #416      +/-   ##
==========================================
+ Coverage   59.85%   59.89%   +0.03%
==========================================
  Files          40       40
  Lines        2830     2830
==========================================
+ Hits         1694     1695       +1
+ Misses       1009     1005       -4
- Partials      127      130       +3

Impacted Files
Coverage Δ

core/client.go
63.71% <0.00%> (+0.44%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Missing "assignments" for Add-PnPPlannerTask

Currently I can't create or update a task for planner with assigned users.
Extend the command with a collection of user like UserPrincipalNames . Same for Update-PNPPlannerTask
Add-PnPPlannerTask -Group "Marketing" -Plan "Conference Plan" -Bucket "Todos" -Title "Design booth layout" -UserPrincipalNames<EMAIL_ADDRESS><EMAIL_ADDRESS>API Graph: https://docs.microsoft.com/en-us/graph/api/planner-post-tasks?view=graph-rest-1.0&tabs=http
Code Sample: https://github.com/sandytsang/PlannerModule

We merged functionality to both Add-PnPPlannerTask and Set-PnPPlannerTask. It will be available in 1.3.17-nightly tomorrow.


Support italics display

This change lets italics be displayed. It already seems to be supported everywhere else in the code, this just activates it. For an example of a playback that uses this:
https://asciinema.org/a/rNFv0myj5QDjJQQaqirDRgJUl
Thanks for the awesome work on this tool, it's great! :)

Thanks Daniel!


thanks ! but there are some errors

Xcode Version 9.4.1 (9F2000)
i pod install then open the project

Yes, sorry, this is unfinished work.
I ran into roadblocks and out of time.
Please refer to README.md
I'm very happy if you resolve the last issues. Send me pull requests!


Discord Bio & Banner?

Hey there,
would it be possible to also put a user's bio and their banner on the User Endpoint?

TL;DR;
You need to make a self-bot for that. Because discord does not gives banner hash or bio information for bots right now. Since self-bot is against ToS, lanyard probably will not have these features unless discord gives it.
Links
Endpoint For Profile

I do want to eventually support this, so will leave this issue open in case anyone has other ideas about how to go about it

TL;DR;
You need to make a self-bot for that. Because discord does not gives banner hash or bio information for bots right now. Since self-bot is against ToS, lanyard probably will not have these features unless discord gives it.
Links
Endpoint For Profile

According to some folks on the discord.js Discord (I know, totally the best source for information) a couple of days ago, Discord said - somewhere - that Bots will soon be able to access banners, but bios are not planned.

Discord now gives banner information for bots when you fetch the user:

But in websocket, They still don't added banner informations for user struct i think:

So maybe we can add a endpoint that fetches the user (this endpoint will not require to join the server.) but client can be rate limited when they spam. Any idea?

It's just a hash, how do we decode and render it?

It's just a hash, how do we decode and render it?

https://cdn.discordapp.com/banners/<user_id>/<hash>.<format>?size=<size>

user_id: The user id that owns the banner.
hash: Banner hash. (its animated if hash starts with a_.)
format: Image format for banner. like png, gif, jpg etc...
size: Banner size. (discord uses 300 for mini-profile and 600 for profile.)

Example
https://cdn.discordapp.com/banners/704758931343278162/9cb5914f1c4d912b4b85584551ecacd7.png?size=600

Oh of course, I thought you meant rendering it from the hash, not using the URL

I've got a CDN/API worker that I've been sharing in the discord for anyone who needs it, and it is reliable for banners/avatars since it uses a bot account in the server, however it does also have support for the entire user profile including the bio (should read the gist on this one though)
I have a gist detailing the routes and such here : https://dcdn.dstn.to/gist

I've got a CDN/API worker that I've been sharing in the discord for anyone who needs it, and it is reliable for banners/avatars since it uses a bot account in the server, however it does also have support for the entire user profile including the bio (should read the gist on this one though)
I have a gist detailing the routes and such here : https://dcdn.dstn.to/gist
Example : https://dcdn.dstn.to/profile/156114103033790464

That looks interesting! Will have a look soon!

Clear : )

https://discordlookup.mesavirep.xyz/v1/user/604779545018761237
@mesalytic offers this discord lookup api if u wish for a nice API to integrate
https://github.com/mesalytic/discord-lookup-api

It dosnt show the discord status though. In which, what does the discord_status label under anyways?
Also here is the full code I was using https://sourceb.in/R1nGgMPZzG

@Phineas I have a project that might be useful to you
https://github.com/seliim1337/lanyard-test-web


RAM usage improvement?

Hello,
I'm using the Firebase library in my project on ESP32 Wroom, it doesn't have additional PSRAM, so there is not too much free RAM to use.
What I've noticed is that my ESP32 Free Heap is 51292 after boot. I've compared Free Heap to the library IOXhop_FirebaseESP32 which gives me ~94700 after boot with the same code as used with your library.
Do you think there is space for RAM usage improvement?

It's strange and unbelievable.
For example if you use two FirebaseData object, the free heap is about 160-170k.
Something wrong with your code?
You should share your code.

I'm using BLE - it uses a lot of RAM.

You should not use BLE together with WiFi because it use the same radio.
You need to disable BLE and reboot to use WiFi only get more free heap.

BTW it's possible to use at the same time even if it uses the same radio.

No

I know about mbed memory usage. In may case it works OK.

Are you sure for SSL/TLS?

How can I check it? What I see is that ESP32 connects to 443 port.

You can test to use WiFiClientSecure to connect to some server  via ssl (use https in server url or host).  It uses a lot of ram in SSL handshake and decrypt/encrypt exchanged data.
I'm not recommended to use both BLE and WiFi at the same time for high WiFi priority tasks as stream which it needs connection to stay alive.


Add lock to ObservableHashSet.TryGetValue

I have added a lock to ObservableHashSet.TryGetValue.
please confirm this is correct.

Thanks!
I'll release soon!


ADX-1046 Persist validation metadata

Description
This PR adds two hidden inputs to the end of the resource edit form, one for validation_status and the other for validation_timestamp. This ensures that the metadata is persisted when the resource is updated through the UI.
At present, if metadata is edited without uploading a new file, the validation metadata is lost.
My primary concern about this PR is that it requires us to update the order which plugins are loaded.  THis is because validation needs to be able to extend scheming templates, in order to keep this change in validation.
It could alternatively be moved to ckanext-unaids - this doesn't make as much logical sense to me, since the change is strictly scoped to only the validation work, but I can see that it may appear safer and therefore be a preferable option.  Happy to hear what @tomeksabala and make the change as he sees fit.
Checklist
Put an x in the boxes that apply to this pull request (you can also fill these out after opening the pull request).
You may not need to check all boxes.

[ ] The Jira ticket for this issue has been updated to "Ready to Review" or equivalent.
[ ] I have developed these changes in discussion with the appropriate project manager.
[ ] My code follows the general Fjelltopp documentation (see Confluence).
[ ] I have made corresponding changes to the Fjelltopp documentation (see Confluence).
[ ] I have rebased this branch with master.
[ ] New dependency changes have been committed.
[ ] I have added automated tests that prove my fix is effective or that my feature works.
[ ] New and existing tests pass locally with my changes.
[ ] My changes generate no new warnings.
[ ] I have performed a self-review of my own code.
[ ] I have assigned at least one reviewer.

Upon reflection, I've closed this PR in favour of including the feature in ckanext-unaids.  We want to be minimal in the way we extend validation extension, so we can easily pull from upstream.  I think this problem is also specifically related to the way we are using the extension.  Furthermore, it is far safer to avoid switching the order of loading extensions.


The touch area might be too small

I’m testing your demo on an iPhone 8. I have trouble grabbing the thumb with my finger. Most of the time, it doesn’t slide. I guess, the vertical touch area is just too small. Maybe this could be fixed by enlarging the height of the touch area?
When I test the standard range input (https://37osw.csb.app/), I do not have this problem most of the time.

What browser are you using? I can try testing on my iPhone to compare.

I checked in Safari and Firefox, but there should be no difference between browsers on iOS because it’s all the same WebKit engine.

Good to know and thanks for the information! When I created this project, I didn't really intend for it to be used on a mobile device so I'm not surprised that there may be some issues. I will keep potential mobile improvements in mind as I continue to maintain the project, however, it's not a priority at the moment since a majority of traffic views are from a computer.
Thanks again for bringing this to my attention and you are welcome to submit a PR with mobile improvements if you'd like 🙂


Is this valid according to rfc2616?

My reading of rfc2616 is that both spaces and horizontal tabs are allowed as LWS in field values:
 LWS = [CRLF] 1*( SP | HT )

But in http_parser.c where there should be checks for both SP and HT I see only a check for SP:
https://github.com/nodejs/http-parser/blob/master/http_parser.c#L1660
That means the following HTTP message is malformed:
GET / HTTP/1.1\r\n
Host: example.com:80\r\n
Connection: keep-alive\t\r\n
\r\n

Am I reading this correctly?

Hm.. it really looks like we should support this. I think you are reading it correctly.
cc @mscdex and @jasnell just in case

Yes, IIRC both characters should be allowed.

For header field values only yes, tabs should be allowed albeit encountering them in the wild appears to be quite rare.

Also FWIW rfc7230 obsoletes rfc2616.

@mscdex yeah, I checked it first, and this thing was the same there too.

Yes, this message is malformed since host: header is required for HTTP/1.1

@socketpair Sorry, yes the header is missing but that's not the problem. Even re-adding the header makes the message malformed according to the parser. I will edit the post

Also FWIW rfc7230 obsoletes rfc2616.

I too much prefer references to the updated document. However, the rules don't change regarding to optional whitespace (OWS in RFC7230) being allowed in field values.
I use this http parser in my project currently and I had to add more code to remove the ending whitespace from the field value before forwarding it to upper layers because this parser erroneously[1] include ending OWS as part of the field value. I agree about the project decision as it keeps the parser simpler and more performant. However I completely disagree about such poor documentation that doesn't warn users on how to properly use this parser. I'd point people to the implementation of my lib rather than this page itself because of the very very very poor documentation around it. I went just fine because of RFCs and a high load of unit tests. HTTP is the domain I'm implementing and I don't expect to get away not knowing the RFCs. However, for other users, the situation may be very different and they're using this parser exactly because they don't need to know the protocol details.
[1] "The field value does not include any leading or trailing whitespace: OWS occurring before the first non-whitespace octet of the field value or after the last non-whitespace octet of the field value ought to be excluded by parsers when extracting the field value from a header field.", section 3.2.4 of RFC7230

The RFC7230 (section 3.2) ABNF rules for header fields:
header‑field   = field‑name ":" OWS field‑value OWS
OWS            = *( SP / HTAB )


Release of version <IP_ADDRESS> of xWebAdministration

Releasing version <IP_ADDRESS>

This change is

Codecov Report

Merging #395 into master will increase coverage by 0.27%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##           master    #395      +/-   ##
=========================================
+ Coverage   90.43%   90.7%   +0.27%
=========================================
  Files          17      17
  Lines        2467    2411      -56
=========================================
- Hits         2231    2187      -44
+ Misses        236     224      -12

Impacted Files
Coverage Δ

..._xIisMimeTypeMapping/MSFT_xIisMimeTypeMapping.psm1
100% <100%> (+4.65%)
:arrow_up:

...ApplicationHandler/MSFT_WebApplicationHandler.psm1
100% <100%> (ø)
:arrow_up:

DSCResources/MSFT_xWebsite/MSFT_xWebsite.psm1
97.02% <100%> (+1.38%)
:arrow_up:

Continue to review full report at Codecov.

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


blurred fern result

seems it did not get the right pose, mse too high
log.txt

Hi @tljk,
Maybe try a lower learning rate?
Best,
Zirui

@ziruiw-dev
thanks for reply
poses were better, but got a worse image that partially broken

The image and depth looks right to me. Not sure which part is broken? If I understand correctly, 19900 iterations are only about 1000 epochs for the fern scene. Now the poses are correct and you just need to leave it to train longer to get better renderings.
Best,
Zirui


Chare array broadcast messages don't appear to be freed by the runtime

Original issue: https://charm.cs.illinois.edu/redmine/issues/2045

Need to debug further, but it seems like doing many broadcasts we run out of memory eventually do to the messages not being freed.

Original date: 2019-01-21 20:31:54

This should only affect parameter marshalled entry methods and [nokeep] broadcasts, where the user doesn't take ownership of the message object.
This patch made CmiRefeference atomic somewhat recently, and could possibly be affecting the broadcast code: ~~https://charm.cs.illinois.edu/gerrit/#/c/charm/+/4108/~~ https://github.com/UIUC-PPL/charm/commit/716024c94421c7e4dfdb018bc89ae1ec4a053086

Original date: 2019-01-21 21:46:24

I haven't looked at the array broadcast internals to know what the issue is, but it's possible that this works this way to support anytime migrations. If PEs need to be able to store messages for a time because some chare might arrive that has not received the broadcast message, then the solution to the problem might not be obvious. Obviously you would have to purge the messages after a point, but when? If this is the case, this is likely to affect any type of messages, not just marshalled. If the user is supposed to take ownership of the message, the array manager needs to keep the original copy of the message to be able to give it to other array elements.

Original date: 2019-01-21 22:05:43

That's true. AMPI (and possibly other applications) sets '_isAnytimeMigration = false;' and '_isStaticInsertion = true;' inside an [initnode] routine, which is supposed to be used by the runtime to detect if the array has "stable locations". If you grep for "stableLocations" in src/ck-core/ you'll see some code that is supposed to conditionally either do "spring cleaning" of broadcast messages every so often (currently 1 min, which seems arbitrary) or delete broadcast messages after finishing delivering them on each PE.
My guess is that your benchmark does not set the above values or use CkArrayOptions to specify that it has "stable locations", so you are getting the spring cleaning behavior and your benchmark takes less than a minute to run so it never gets there? If that's the case, we can decrease the spring cleaning time interval some, at least. Or maybe there's really something broken with spring cleaning and/or the stable locations code path...

Original date: 2019-01-22 02:44:58

I'm just running with default values, so spring cleaning option seems to be the default. I didn't know about the other options.
I ran another test, where the broadcast volume is lower, and mem usage stops growing at approximately 120 seconds into the program. It doesn't free all the messages (just the oldest ones) so mem usage doesn't decrease all at once, it just basically stops growing. Weirdly if 1 minute is the default I don't know why it stops growing at 2 minutes.
Anyway, I don't like timers since they are completely arbitrary and one value for the timer might work well for some application but not another. Still, there might not be a better solution. If timers is the way to go, it might be possible to use a pretty small value as default (a few seconds?), and have the runtime abort with a message if a migrating chare misses a message. Message could say something like: "increase timer with this command line option". I bet most applications wouldn't even encounter this message.
I don't have any real use case where spring cleaning behavior is problematic (i.e. where the rate of broadcasts is so high as to consume lots of memory). I encountered the issue because of a bug in my code. But since spring cleaning is the default, I think it's best to avoid the unnecessary memory consumption for long periods of time since we shouldn't assume anything about other users' code or memory constraints.

Original date: 2019-01-22 02:58:24

Yeah, I agree with everything you said. Timer defaults are always hacky, but 1 or 5 seconds seems better than 1 minute to me (plus adding an abort message). Can you also confirm that if you set the stableLocations option to true, the memory of broadcast messages is always freed?
We can also discuss changing the default to be no anytime migration in Charm++ v7.0. (Plus you could make it the default in CharmPy earlier if you wanted)

Original date: 2019-01-22 03:02:40

One case that occurs to me that could be problematic is a typical implementation of Stochastic Gradient Descent commonly used in Deep Learning. The parallel implementation is basically a loop where each worker does some computation, and then AllReduce happens so that workers communicate the averaged model parameters to other workers. And this happen for X number of iterations until convergence is reached. The problem is that model sizes can be several hundred MB, and if the allreduce is implemented as reduction followed by broadcast, that means each iteration there is a broadcast of several hundred MBs.

Original date: 2019-01-22 03:09:54

Yes, and in that scenario you really want the zero copy API for broadcasts and reductions in order to avoid intermediate copies of the data as much as possible.

Original author: Jim Phillips (@jcphill)
Original date: 2019-01-22 16:12:39

Perhaps spring cleaning could be triggered by the number of accumulated broadcasts (and/or amount of memory used by accumulated broadcasts) to a single array rather than by elapsed time.  Or, rather than broadcasting to all nodes, you build a node-adapted tree of array elements and periodically update the tree to correspond to the node topology.

Original date: 2019-01-24 20:21:41

I agree with Jim's suggestion for moving away from a timer-based spring cleaning mechanism. I don't think the documentation currently mentions that you can set '_isAnytimeMigration = false;' and '_isStaticInsertion = true;' inside an [initnode] routine or by setting CkArrayOptions for those options.
In Charm v7.0 we are proposing to make no anytime migration and static insertion the defaults, with opt-in-ability for anytime migration and dynamic insertion.


Bug fix - 948 | Added else if condition to get tables into InSync state

Feature or Bugfix

Bugfix

Detail

Added else if condition for getting the glue tables which exist on the AWS account and also present in RDS dataset tables set the LastGlueTableStatus to InSync.

Testing

Created a dataset with tables
Marked the dataset tables LastGlueTableStatus to Deleted.
Checked if the table are now NOT displayed.
Deployed data.all with this fix
Now the dataset tables are present on the UI.

Relates

https://github.com/data-dot-all/dataall/issues/979

Security
Please answer the questions below briefly where applicable, or write N/A. Based on
OWASP 10.

Does this PR introduce or modify any input fields or queries - this includes
fetching data from storage outside the application (e.g. a database, an S3 bucket)? N/A

Is the input sanitized?
What precautions are you taking before deserializing the data you consume?
Is injection prevented by parametrizing queries?
Have you ensured no eval or similar functions are used?

Does this PR introduce any functionality or component that requires authorization? No

How have you ensured it respects the existing AuthN/AuthZ mechanisms?
Are you logging failed auth attempts?

Are you using or adding any cryptographic features? No

Do you use a standard proven implementations?
Are the used keys controlled by the customer? Where are they stored?

Are you introducing any new policies/roles/users? No

Have you used the least-privilege principle? How?

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

Tested in AWS:

[x] CICD Pipeline Succeeds
[x] Removed glue:... permissions for pivot role + Synchronize on UI --> Tables update with Deleted Status and no show on UI
[x] Re-add glue:... permissions for pivot role + Synchronize on UI --> Tables update with InSync Status and show on UI


[MINOR][SQL][TEST]no uncache table in joinsuite test

What changes were proposed in this pull request?
At present, in test("broadcasted hash outer join operator selection") case,  set the testData2 to CACHE TABLE, but no uncache table testData2. It can make people confused.
In addition, in the joinsuite test cases, clear the cache table of work by SharedSQLContext spark.sharedState.cacheManager.clearCache to do, so we do not need to uncache table
let's fix it. thanks.
How was this patch tested?
Existing test cases.

Can one of the admins verify this patch?

The change looks fine. @HyukjinKwon @gatorsmile Can you help trigger jenkins? Thanks.

ok to test

Test build #80519 has started for PR 18914 at commit b537ce0.

retest this please

Test build #80525 has started for PR 18914 at commit b537ce0.

Test build #80525 has finished for PR 18914 at commit b537ce0.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/80525/
Test PASSed.

Merged build finished. Test PASSed.

Test build #80568 has started for PR 18914 at commit cb07136.

Test build #80568 has finished for PR 18914 at commit cb07136.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/80568/
Test FAILed.

sorry, one line was deleted.

Test build #80569 has started for PR 18914 at commit 8a79dff.

Test build #80569 has finished for PR 18914 at commit 8a79dff.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/80569/
Test FAILed.

retest this please

Test build #80571 has started for PR 18914 at commit 8a79dff.

Test build #80571 has finished for PR 18914 at commit 8a79dff.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/80571/
Test PASSed.

Test build #80580 has started for PR 18914 at commit 4a88e3f.

Test build #80580 has finished for PR 18914 at commit 4a88e3f.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/80580/
Test FAILed.

Test build #80583 has started for PR 18914 at commit 5b3f650.

Test build #80583 has finished for PR 18914 at commit 5b3f650.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/80583/
Test PASSed.

Test build #80588 has started for PR 18914 at commit 0de047d.

@gatorsmile , @viirya, @kiszk, With all the comments,  I have modify it again. please review it again if you have time. thanks.

@heary-cao Why do we need to call spark.sharedState.cacheManager.clearCache() in JoinSuite while we have already call clearCache() in SharedSQLContext?

@kiszk
The original reason of this PR was a simple .
test("broadcasted hash outer join operator selection") {
spark.sharedState.cacheManager.clearCache()
sql("CACHE TABLE testData")
sql("CACHE TABLE testData2")
Seq(
("SELECT * FROM testData LEFT JOIN testData2 ON key = a",
classOf[BroadcastHashJoinExec]),
("SELECT * FROM testData RIGHT JOIN testData2 ON key = a where key = 2",
classOf[BroadcastHashJoinExec]),
("SELECT * FROM testData right join testData2 ON key = a and key = 2",
classOf[BroadcastHashJoinExec])
).foreach(assertJoin)
sql("UNCACHE TABLE testData")
}
the cache table and uncache table do not match.
Later, we found that replace uncache table with spark.sharedState.cacheManager.clearCache()
Finally, it's now modified it.

@heary-cao I already understand what you want to do. It makes sense to me to remove sql("UNCACHE TABLE testData").
My question is about JoinSuite.afterEach(). Do you want to call spark.sharedState.cacheManager.clearCache() twice at JoinSuite.afterEach() and SharedSQLContext.afterEach()?

okay,Looks like we just need something simple to remove uncache table .
thanks.

Test build #80592 has started for PR 18914 at commit 4212553.

Test build #80588 has finished for PR 18914 at commit 0de047d.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/80588/
Test PASSed.

Test build #80593 has started for PR 18914 at commit 7dd8cdb.

Test build #80592 has finished for PR 18914 at commit 4212553.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/80592/
Test PASSed.

Merged build finished. Test PASSed.

Test build #80593 has finished for PR 18914 at commit 7dd8cdb.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/80593/
Test PASSed.

Merged build finished. Test PASSed.

Test build #80611 has started for PR 18914 at commit a48751f.

LGTM

Test build #80611 has finished for PR 18914 at commit a48751f.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/80611/
Test FAILed.

retest this please

Test build #80617 has started for PR 18914 at commit a48751f.

Test build #80617 has finished for PR 18914 at commit a48751f.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/80617/
Test PASSed.

Thanks! Merging to master.


Disallow body fields in GET endpoints

AFAIK GET requests can or should never contain a body.

Done in https://github.com/ruma/ruma-api/commit/d6f19268325c0c6d0d56f68434e8eadf6386e06e


Can't login in google play games

I have a Leeco Le Max 2 with LienageOS 16 with microg, I have installed all microg apps installed as system apps, and in microg settings, I have al checks activated in Self-Check option, but when I open play games, it says "Play Games is having trouble with Google Play Services. Please try again". https://imgur.com/gallery/LEIOHAm

#163 Duplicate.
Known issue, play games is not yet supported.

And there is another way to login with Google account in Pokemon go, ingress and wizard? Google photos for example is working fine, but in this games I can't login


Enhance Solid Following Behavior

This PR adds the possibility to set various follow solid behavior:

Tracking Shot
Mounted Shot
Pan and Tilt Shot

I just test it on the drone, and it's awesome!

:+1:


New version: ClusterValidityIndices v0.1.5

Registering package: ClusterValidityIndices
Repository: https://github.com/AP6YC/ClusterValidityIndices.jl
Created by: @AP6YC
Version: v0.1.5
Commit: 46cdfa804149929f66f70e186ba3aa31ccd64362
Reviewed by: @AP6YC
Reference: https://github.com/AP6YC/ClusterValidityIndices.jl/commit/46cdfa804149929f66f70e186ba3aa31ccd64362#commitcomment-50127043
Release notes:

New CVIs:

WB-Index (WB)

@AP6YC I take this can be closed

@AP6YC I take this can be closed

That is correct. I apologize for not commenting so earlier and for any confusion it might have caused.


MINOR: Reuse hasDefault instead of comparing with NO_DEFAULT_VALUE directly

Always use the hasDefault method to check if the default value is specified in ConfigKey object
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@showuon Thanks for reply
This small change is mainly to unify the way to determine if the user has set the default value, both ways are used currently:

ConfigDef.java#L1183
ConfigDef.java#L595

I think the code may be more cleaner by using hasDefault() uniformly.
Thank you for review.

@wuYin

This small change is mainly to unify the way to determine if the user has set the default value

Yes, I know, so I think this line should also be updated.
https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/common/config/ConfigDef.java#L1146
NO_DEFAULT_VALUE.equals(defaultValue) ? NO_DEFAULT_VALUE : parseType(name, defaultValue, type);

It is also trying to determine if the default value is set, so, we can update to:
hasDefault() ?  parseType(name, defaultValue, type) : NO_DEFAULT_VALUE;

What do you think?

@showuon
Thank you for patient explanation, I added this.
Now NO_DEFAULT_VALUE is no longer used for direct comparison.

This is a nice cleanup. @wuYin if you rebase to resolve the conflict, we should accept and merge this PR.


Proposal: rfl:UnderlyingEnum

Hello everyone
I come with a proposal for a new class rfl:UnderlyingEnum. Based on the example in the enum section of the documentation, what would be the application of this:
Without using rfl:UnderlyingEnum:
enum class Color { red, green, blue, yellow };

struct Circle {
  float radius;
  Color color;
};

const auto circle = Circle{.radius = 2.0, .color = Color::green};

rfl::json::write(circle);

This results in the following JSON string:
{"radius":2.0,"color":"green"}

With rfl:UnderlyingEnum:
enum class Color { red, green, blue, yellow };

struct Circle {
  float radius;
  rfl:UnderlyingEnum<Color> color;
};

const auto circle = Circle{.radius = 2.0, .color = Color::green};

rfl::json::write(circle);

This results in the following JSON string:
{"radius":2.0,"color":1}

I think this would be useful when the names of the enum values are very long and we want to keep the data size as small as possible, e.g. sending large amounts of data over a TCP socket, plus we want to keep the original fields in our struct

Good idea.
I would design it as a processor, though.
So the syntax would be like:
rfl::json::writerfl::UnderlyingEnum(circle);

@AnsiV01 , I have merged your PR. Thank you so much for your contribution. Really great work.
I think we can close this issue.


Adapter detects username as first name instead of the actual one

As I was having another issue regarding the blocky script with user name field, I realised that the adapter detects me with my first name as username and not my actual username.
Since first names are not unique this could lead to some issues down the road.
I tried to delete everything and reinstall the Adapter and bot but still it shows my first name as user and not my actual one.
Not sure if this is just me, or it is how it is.

The Adapter is always saving the first name of the user and not the Username that is set in the Telegram App of the user.. So that is how it is for now. I think it is working that way because it is easier to remember first names and usually you only have users on your bot which are living in your household.
So you can easier do your scripting stuff without first have to look what the username of your wife / daughter / son is on telegram - you just need to know the first names to send messages out of the script directly to one of them. And hopefully you know the name of your family members.. :laughing:

For your information:
I am preparing a change on the adapter - where you can choose in the settings of the adapter if it should save the username or the first name of an user.
This is useful if somebody has multiple users with the same first name authenticated to the bot.. :+1:

Of course using first names will be much easier and probably I will be using it for now, the other big issue with it is the script, as I posted on iobroker.javascript its like lottery if the thing works when using "user" in the code rather than "chatId", I dont know why but yea.
Nevertheless I appreciate your effort to implement a second option since it solves issues with multiple names.
Thanks again !!

PR created:
https://github.com/ioBroker/ioBroker.telegram/pull/47

Thanks a lot for the effort!!! Ill go ahead and close this one! Ill try to changes and give feedback asap!


Fix for using bindings.js with eval

Hi!
I found a lot of issues and bug reports that all seem to originate from "bindings.js" in combination with the eval function. In this specific case, the exports.getFileName(); returns undefined, causing exports.getRoot() to crash with the error message Cannot read property 'indexOf' of undefined at Function.getFileName (bindings.js:180) (see: https://github.com/TooTallNate/node-bindings/issues/54).
This PR fixes this issue by checking if a valid filename was found in exports.getRoot() and returns undefined there if not. This, however, means that the module_root is set to the root-folder of your application, not the node_modules/{package} folder of the package that's trying to find it's node-bindings. Since we've got no other information about the package root we're looking for, other than the ".node"-filename, I've added a heuristic that looks for the package name (in the node_modules-folder) that best matches the ".node"-filename.
This approach seems to work very well, especially for "better-sqlite3" that suffers from this issue when used in combination with electron and web workers.
Would you be so kind to review and accept my PR?

@TooTallNate Could you take a look at this?

@pverscha this patch still throws the Could not locate the bindings file. error when used with @airbnb/node-memwatch + webpack. Let me know if you need help reproducing.

Has there been any progress on this?

could not find module root given file: “”.Do you have a ‘package.json’ file? at t.getRoot

I had same issue. I solved it by using better-sqlite3 module. It has a nativeBinding option. This option can be used to specify file path of sqlite native .node dependency file. If this option is provided then better-sqlite3 module won't use bindings module to locate .node file so the error from bindings module doesn't occur
let dbOptions = { fileMustExist: true };
if (appEnv.inPKG) {
  dbOptions.nativeBinding = path_join(
    appEnv.pkgRoot,
    "node_modules/better-sqlite3/build/Release/better_sqlite3.node"
  );
}
let db = new Database(dbPath, dbOptions);
// now works..


Use pyproject.toml and src root dir

Codecov Report
Attention: Patch coverage is 82.60870% with 8 lines in your changes are missing coverage. Please review.

:exclamation: No coverage uploaded for pull request base (develop@ea15bb2). Click here to learn what that means.

Files
Patch %
Lines

tests/sources/test_cds.py
11.11%
8 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             develop     #376   +/-   ##
==========================================
  Coverage           ?   89.63%
==========================================
  Files              ?      117
  Lines              ?     7371
  Branches           ?      644
==========================================
  Hits               ?     6607
  Misses             ?      636
  Partials           ?      128

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


Rewrite the Progress, Usage, Stepdefs formatters to the new formatter api

Since these formatters are related through inheritance they are modified together. Since the Stepdef formatter neither defined any method of the old formatter api, nor defines any methods of the new formatter api, it is updated to the new formatter api by the changes in the Progress and Usage formatters.
Also some deficiencies of the Progress formatter are fixed, both that outline steps were printed as skipped (fixes #316), and some cases where the printed progress characters did not match the step count in the summary (here only 8 '-' were printed, but the step count says 11 skipped).
Related to #839.

WOW! Thanks @brasmusson, you absolute champ. Looking forward to reading through this one and getting it merged. Well done!


Connection.handle_close/3

My C-foo is non-existent, so here's what happens (I have Connection.test/0 as a quick-and-dirty way to test things):

Run Connection.test(), and everything is fine
Run Connection.test() a second time, and:

beam.smp(43501,0x7000048e0000) malloc: Non-aligned pointer 0x7fe3598ebc50 being freed (2)

@warmwaffles

This PR is now invalid 👍


Strassens Algorithm

Description
Matrix multiplication using strassens method under divide and conquer
Domain
Algorithm
Type of Contribution
Addition
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of LearnCPP.

/assign

check PR 1500


remove individual collection pages

Description
remove individual collection pages
PDOK-17117
Type of change
(Remove irrelevant options) ;)
Checklist:

[x] I've double-checked the code in this PR myself
[ ] I've left the code better than before (boy scout rule)
[ ] The code is readable, comments are added that explain hard or non-obvious parts.
[ ] I've expanded/improved the (unit) tests, when applicable
[x] I've run (unit) tests that prove my solution works
[x] There's no sensitive information like credentials in my PR

oops, niet goed getest 😔
working on it


input type="file" is not supported

Thanks for these components!
As usual though there is just one more thing that would be a clincher... the ability to upload a file.
I know there are a lot of moving parts with this option.
Is this under consideration or do you have recommendations?
Or is this PR material?

Oops - I have a work around with [:input ... ] and http-fx
Maybe that's just 'the answer'?


feat: Add support for aws-chunked uploads

Closes #534. Using this as my primary implementation guide in addition to inspecting how the Java SDK implements chunk signatures, I've successfully come up with a small suite of tests that pass against real S3 services.

This ended up needing far more research than I anticipated as there aren't any JS/Node S3 clients that actually implement chunked transfer encoding. I also found a couple places in the file system store where a request stream error wasn't being handled and could lead to Promises that would never be resolved. This also sets up most of the groundwork needed to implement a Transform stream that computes payload hashes/signatures for aws4-signed requests.


Make new release and update wiki

hi @Pillar1989,
thank you for keeping this project active by merging changes and additions!
when would be a good time for a new release?
also, do you know anybody that could update the wiki to reflect the changes and incorporate the new release? i opened this PR which did not get any attention yet.

@lakshanthad  can u help me do this work?

Hello @x29a,
Thank you for your contributions. We really appreciate it!
I have made the new release. I will also arrange to change the wiki to reflect the changes.

@x29a ,
Have you properly tested the hardware with the latest changes in the code so that we can update the wiki?

@x29a ,
Have you properly tested the hardware with the latest changes in the code so that we can update the wiki?

@lakshanthad thanks for the new release.
I have tested the rev 1.0 BGT24LTR11 board for multiple days in target detection mode and read the speed. I did not test the I/Q mode, but there were no changes there.
If there is anything else you want me to test, i can do that easily and happily!


Change style (specific icon and title) on features from GeoJSON parser

Maybe is something is already answered, but how I can change the style of features from GeoJSON parser based on properties from any single feature?
I have the following:
    let path = Bundle.main.path(forResource: "GeoJSON_sample", ofType: "json")
    let url = URL(fileURLWithPath: path!)
    geoJsonParser = GMUGeoJSONParser(url: url)
    geoJsonParser.parse()

   // MARK: Here try to iterate features and change style, but there's no way no get properties from feature,
   // Also, create a new GMUStyle and set iconUrl and title and nothing changes,
   // I set iconUrl using asset key name filename from Assets

    renderer = GMUGeometryRenderer(map: mapView, geometries: geoJsonParser.features)

    renderer.render()

Any help appreciated!
Regards

I am also facing the same issue with this as I want to changes style

You should be available to use this:
let features = geoJsonParse.features as? [GMUFeature] for features in features { feature.properties // Return properties }
The only problem its that doesn't work :(

I can confirm that it still doesn't work and "properties" is not available for use.

Here is a sample to iterate rendering all features with customized style.
Try it :)
let strokeColor = UIColor(red: 1, green: 0, blue: 0, alpha: 1)
for feature in geoJsonParser.features {
    feature.style = GMUStyle(styleID: "12345", stroke: strokeColor, fill: UIColor.clear, width: 2.0, scale: 1.0, heading: 0.0, anchor: CGPoint(x: 0, y: 0), iconUrl: "url", title: "title", hasFill: false, hasStroke: true)
}

Hi guys,
Is there any way to access properties ? i want to change style for each feature with some specific condition

@juvs you should be able to access the properties of a feature, it requires some type checking though since geoJsonParser.features is of type [GMUGeometryContainer] and not [GMUFeature].
i.e.
for obj in geoJsonParser.features {
  if let feature = obj as? GMUFeature {
    let properties = feature.properties
    // Do something with properties here
  }
}

Hi arriolac, I tried the above you provided. But it throws an error "Use of undeclared type 'GMUFeature' ". Could you suggest some other way to access properties?

@mallikarjuna0308 can you share a code snippet? The code I shared above runs just fine assuming the right import statements are in place.

Thank you @arriolac for your response. I did not import anything, when I'm trying to import Google-Maps-iOS-Utils, it is throwing an error. Since I did not import any thing, I might be facing error while using your code. Could you please let me know what and where to import the library? If I still face the issue, I would share the code with you.
Note: I have used cocoapods to integrate Google-Maps-iOS-Utils library in my project.

You need to do the following at the top of your .swift files:
import GoogleMapsUtils

or at the top of your .m files for Obj-C:
@import GoogleMapsUtils;

You can refer to our samples directory to see how it's used: https://github.com/googlemaps/google-maps-ios-utils/tree/master/samples

Hi @arriolac, sorry for the late reply. I tried to import GoogleMapsUtils as you mentioned above, but it's throwing an error " No such module 'GoogleMapsUtils' ". I have gone through the link you provided above too but still the error still persists. Could you please help me in this regard?

Hi @arriolac, my problem got resolved. I used cocoapods to integrate this library and also added in library in Bridging-Header.h file as suggested in this link: https://developers.google.com/maps/documentation/ios-sdk/utility/kml-geojson
After commenting in header file, everything started working fine. Thanks a lot for your support @arriolac.

@mallikarjuna0308 glad you were able to get that working. Curious what version of this library are you using?

@arriolac I'm using 'Google-Maps-iOS-Utils', '~> 3.0.2'

Hi there and sorry to reopen this, but i am facing something simmilar.
I'm trying to show the title of the area using GeoJson but somehow it just doesn't shows on the map. Im using iOS 11.0 and pod Google-Maps-iOS-Utils 3.1.4 & GoogleMaps 3.9.0
I just posted on StackOverflow with more details : https://stackoverflow.com/questions/62135450/cannot-display-title-in-googlemaps-geojson-swift
if someone can help i'll be very gratefull.  Thanks !

@juvs you should be able to access the properties of a feature, it requires some type checking though since geoJsonParser.features is of type [GMUGeometryContainer] and not [GMUFeature].
i.e.
for obj in geoJsonParser.features {
  if let feature = obj as? GMUFeature {
    let properties = feature.properties
    // Do something with properties here
  }
}

hi, i came across this thread because i do not know how to access feature.properties once it is rendered by GMUGeometryRenderer.render()
i thought at first that geoJsonParser.features link hand in hand with renderer.mapOverlays() but the overlays count too many compared to the features array of geoJsonParser.
i was looking at populating the userData property but there does not seem to be a way to do so?
There are other key values in the properties property that i need to access once rendered to screen. since there is no way to set click listeners for the GMUFeature unlike in android, how can this be possibly done through swiftui?


Windows Defender reports a Trojan in v1.2.0/scala-cli-x86_64-pc-win32.zip

Version(s)
v1.2.0 windows release
Describe the bug
Windows Defender reports that it's infected with a virus
To Reproduce
download this file:
releases/download/v1.2.0/scala-cli-x86_64-pc-win32.zip
After download, go to chrome downloads page, click show-in-folder, right-click on the zip file and then Scan with Microsoft Defender.
Defender prevented the unzip with the following information:
Threat blocked
Detected: Trojan:Script/Wacatac.B!ml
Status: Removed
A threat or app was removed from this device.
Date: 2024-03-09 10:46 AM
Details:
Affected items:
file: C:\Users\user\Downloads\scala-cli-x86_64-pc-win32.zip
[...]

Expected behaviour
Perhaps this is a false positive, hopefully it won't prevent Windows users from trying out scala-cli.
BTW, let me know if I should report this type of problem as other than as a bug ...

We always submit Windows native packages (.msi) for malware analysis when releasing a new Scala CLI version, as it often gets mistagged by Windows Defender otherwise.
For v1.2.0, the submission was done on 07.03.2024 (4 days ago, as of me writing this post).
It is very variable when it comes to Microsoft processing these submissions, sometimes it happens within 24 hours, sometimes it's still in progress after 2 weeks.
This time, after 4 days it's still in progress.
The file used for the submission is this one:

scala-cli-x86_64-pc-win32.msi

You're using the .zip, but that shouldn't matter once Microsoft approves this version as malware-free.
If you're curious about the process, it's described in our release steps here.
I will leave this issue open until the submission gets approved, in case anyone else looks for the answer in the meantime.

BTW, let me know if I should report this type of problem as other than as a bug ...

@philwalk I created a dedicated label for issues of this kind: https://github.com/VirtusLab/scala-cli/labels/anti-malware analysis

I have the same issue... I cannot install it on a windows 2016 machine. And Defender won't let me run the msi program.

@boggye unfortunately, Microsoft still has not finished analysing our most recent release.
I have submitted it on 07.03.2024, so it's been processed for 11 days already at the time of writing this comment.

This is, unfortunately, the way it is with new releases on a Windows device. This should be fixed once Microsoft Security Intelligence finishes the scan and fixes the tagging for Scala CLI.
In the meantime, what I can suggest is:

use an earlier release which has already been scanned by Microsoft

I actually can't confirm if v1.1.3 has been approved my Microsoft already, but v1.1.2 definitely was; you can try either of them

use the JVM distribution via our fatJAR, temporarily (it may start slightly slower, but perhaps this solution would work for you)

you can use the fatJAR with Coursier:

cs launch org.virtuslab.scala-cli:cliBootstrapped:latest.release -M scala.cli.ScalaCli

or just download the JAR from https://repo1.maven.org/maven2/org/virtuslab/scala-cli/cliBootstrapped/


Live Sketch is Blank

I'm having trouble with homework 11, I've written everything and checked everything myself plenty of times, but every time I save and try to view a live sketch, my window is absolutely blank. No errors or anything in the console.
I've attached my code. If someone could tell me what's causing my sketch to not show up, or what's wrong with my code, I'd appreciate it.

The first thing I notice is that you are not providing input parameters when you construct your boxes in the setup() function.
Your constructor calls for ( x, y, size, color ). So when you create a box in line 21, you need to provide these values. (i.e. new Box( width/2, height/2, 30, ‘blue’ )

Thank you so much for that. I really appreciate you pointing that out, and it fixed my problem!


Array comprehension and transducers

Have you thought about using transducers to transpile array comprehension to es5 ?
It would require an external dependency (like https://github.com/jlongster/transducers.js, or https://github.com/cognitect-labs/transducers-js) but transducers are a more efficient way of composing transformations while retaining readability.
The difference is negligible for small arrays, but increase dramatically with the size of the array (http://jlongster.com/Transducers.js-Round-2-with-Benchmarks).
Taking your example:
var seattlers = [for (c of customers) if (c.city == "Seattle") { name: c.name, age: c.age }];

With transducers it would become:
var seattlers = into([], compose(filter(function (c) {
  return c.city === "Seattle";
}), map(function (c) {
  return { name: c.name, age: c.age };
})), customers);

Instead of:
var seattlers = _toArray(customers).filter(function (c) {
  return c.city == "Seattle";
}).map(function (c) {
  return { name: c.name, age: c.age };
});

I'm open to adding an optional transformer to 6to5 that turns array comprehensions into transducers. Which library is the best/most used?

I'm open to adding an optional transformer to 6to5 that turns array comprehensions into transducers. Which library is the best/most used?

I don't think this a good idea. Transducers === lazy evaluation, it's good for map -> filter, but comprehensions are filter -> map. Be better revert to simple loop, it will be faster and fix this issue.

I don't think this a good idea. Transducers === lazy evaluation, it's good for map -> filter, but comprehensions are filter -> map. Be better revert to simple loop, it will be faster and fix this issue.

@zloirock This would be an optional transformer.

@zloirock This would be an optional transformer.

@sebmck Yes, but I do not see the benefits.

@sebmck Yes, but I do not see the benefits.

@zloirock Yeah I guess you're right. I'm more inclined to just revert to a simple loop since right now they're only used if you use array comprehensions with more than one block.

@zloirock Yeah I guess you're right. I'm more inclined to just revert to a simple loop since right now they're only used if you use array comprehensions with more than one block.

I didn’t knew about yielding inside array comprehension, simpler to revert to a loop in this case. The only advantage of transducers over native loops is the improved readability but the latter will always perform better. Native loops seem the best fit.
@zloirock Transducers are eager and they are particularly good in the filter -> map scenario.

I didn’t knew about yielding inside array comprehension, simpler to revert to a loop in this case. The only advantage of transducers over native loops is the improved readability but the latter will always perform better. Native loops seem the best fit.
@zloirock Transducers are eager and they are particularly good in the filter -> map scenario.


set_hfss_extent_info

🔍 Before submitting the issue

[X] I have searched among the existing issues
[X] I am using a Python virtual environment

🐞 Description of the bug
I tried to debug the command set_hfss_extent_info.
initially I found an error, i think it should be self._Cell__stub instead of self.__stub. However even after modifying the applied new HfssExtentInfo is not applied.
def set_hfss_extent_info(self, extents):
    """Set HFSS Extents of this cell.

    Parameters
    ----------
    extents : :class: HfssExtentInfo <ansys.edb.utility.HfssExtentInfo>
    """
    self._Cell__stub.SetHfssExtentInfo(_QueryBuilder.set_hfss_extents(self, extents))

📝 Steps to reproduce
NA
💻 Which operating system are you using?
Windows
📀 Which ANSYS version are you using?
No response
🐍 Which Python version are you using?
3.10
📦 Installed packages
pyedb-core

This issue is old this was probably fixed. Let's close it.


 Have you printed this, is everything ok? I was looking at Redox (I like 5 rows, especially having 5 row pinky column), but was disappointed when I saw no Kailh hotswaps :/

@isavcic, yes, I printed it and things work fine. Just the few cosmetic issues that I listed above.


feat/tauri: add mem free, cached

Used a rudimentary cached_memory calculation alg.

@laciferin2024 thank you

@Abdenasser  Its very much possible to extend this solution to linux as well. WDYT?

I know it's possible @laciferin2024 I just don't have enough time to setup a virtual machine and test it properly on some linux distribution but would appreciate someone taking time to try it


Fixes urls in item routing e2e test

Description
Fixes urls in item routing e2e test
Notes (out of scope, known isues, hints for reviewing code, ...)  (optional)
...
Test cases

[auto-generated message] E2E test report on: https://algorea-static.s3.eu-central-1.amazonaws.com/branch/e2e-tests/fix-url-in-item-routing/playwright-report/index.html


Fix v2 qos-key command

As part of commit 0d2bf657ae5271a01e9ec84d379d17910b263b7e,
qos-key command's v2 support got broken again reintroducing
bug #1284321.
Change-Id: I30d60b060bd1b161bc96c4a529f4732b9ceef90d
Closes-Bug: 1284321
(cherry picked from commit 294acfd5c4054480729ffa3b24c58147499576af)

Fix: http://<IP_ADDRESS>/issues/9540


fix(builds): exclude arm64, ppc64le from -race builds

Description
Per @connorgorman "we can’t build the race condition images for other arches cause cgo will be enabled and we’re relying on the fact it’s cross compiled statically". This PR removes the targets using GHA matrix exclude.
Checklist

[ ] Investigated and inspected CI test results

Testing Performed
CI is sufficient

/test

/test gke-race-condition-qa-e2e-tests


support multiline search

support multiline search
                ['multiline'] = {
                    desc = 'search multiline',
                    icon = '[M]',
                    value = '--multiline',
                },

problem

if we add this to rg search option we can search across multi line with \n but it have wrong total result because we read everyline and map it to a result

the highlight is not correct too because we use vim to highlight vim doesn't support \n. It only read 1 line to highlight

sed is not support replace with range on multiple line. I use sed because it use a same syntax of vim and vim group name replace. but it will broken on multiple

https://github.com/microsoft/vscode/blob/b385fa7ceb2b537e0ba2b58edaa162f4e299a947/src/vs/workbench/services/search/node/ripgrepTextSearchEngine.ts
current solution is search 1 line and use quickfix to run macro cdo  :smile:

it have some problem to use vim matchstr to highlight sample
you can search pattern [\w\.]* but vimregex don't allow use \w inside [] it need to change to `[a-zA-Z.]* and sed don't support than pattern to replace.

Is this a wont-fix?
I will be happy to have all the search results in one page and be able to edit them manually.

Any updates on this? This is one of the few reasons where I find myself opening VSCode 😅

Have to admit, in the ocassions needed (like now for me 😆), this will be really useful.

with #17 it motivates me to use another replace tool or write own. Will look to it

I don't want to fire up VSCode for changes like these 😃 Any solutions? Doesn't have to be in spectre, sed is fine too.
Sometimes I want to remove file owner comments bulk, something like this (note the new line after the comment):
// @team TeamA

With sed I could remove the first line:
find . -type f -name '*.*' -exec sed -i '' '/^\/\/ @team TeamA$/d' {} +

But I can't remove the extra newline after. I tried to get answers from ChatGPT, but it always ended up removing more lines than I initially wanted.

Hi,
Found myself in the same situation, not being able to also replace the '\n' at the end of the string to not replace with an empty line force me to use another tool than Spectre 😭

another tool

care to share?

In python, you can add inline flag with (?m) - multiline, (?i) - ignorecase and so on. I would LOVE to see this! The fact that there is no Multiline search is terrifying :(

another tool

care to share?

In my case I was removing items from a YAML list, I ended up crafting a small Python script and the replacement at scale


Provide a Jar library file

Could you provide a .jar file of the library?

I want to work with build tools 22 but this library is forcing me to use build tools 23 and api 23. Is there any solution?


Include C# as a language

Added the .cs file extension to enable C# files to be displayed with the plugin.  I tested that this works without other changes.

@RobertBernstein Thanks for the change. I will merge.
In future I will find a better way to include language support. As far as I know that Obsidian is using prismjs to handle highlighting. I could register every language supported and consider alias but I am not sure about performance as it will require register renderer for around 297 languages on plugin load. I will look at this in the future.

@RobertBernstein Thanks for the change. I will merge.
In future I will find a better way to include language support. As far as I know that Obsidian is using prismjs to handle highlighting. I could register every language supported and consider alias but I am not sure about performance as it will require register renderer for around 297 languages on plugin load. I will look at this in the future.

Thanks for looking into this and for adding my change!


Feature request: using absolute offset or delta as an alternative to [[row, col], [row, col]] for ranges…

I'm using the linter-indie api to support IDE-like features for scala in ensime-atom https://github.com/ensime/ensime-atom
Currently the server backend gives me error message ranges in the form:
` {"beg":7429,"line":207,"col":57,"end":7435}``
Basically this means that I have an error starting at 207, 57 and the range is then 7435-7429 = 6 characters long. I just made the switch to try to use linter instead of our own homebrew error reporting where we could use the editor to calculate the positions. Using linter-indie however, it just doesn't feel feasable to open up each and everyone of the editor buffers to make the calculation even if they're maybe not even shown.
Currently my hacky code looks like this:
 # TODO: This is only true if error doesn't span two lines. Since we don't have buffer here it might be
    # good enough? Or not?
    range: [[note.line - 1, note.col - 1], [note.line - 1, note.col - 1 + (note.end - note.beg)]]

https://github.com/ensime/ensime-atom/blob/v0.34.0/lib/features/typechecking.coffee#L13
which sometimes gives the following error:
RangeError: Invalid string length
    at Object.stringify (native)
    at /Users/viktor/.atom/packages/linter/lib/validate.coffee:53:25
    at Array.forEach (native)
    at Object.module.exports.Validate.messages (/Users/viktor/.atom/packages/linter/lib/validate.coffee:27:14)
    at MessageRegistry.set (/Users/viktor/.atom/packages/linter/lib/message-registry.js:36:16)
    at /Users/viktor/.atom/packages/linter/lib/linter.coffee:35:17
    at Function.module.exports.Emitter.simpleDispatch (/Applications/Atom Beta.app/Contents/Resources/app.asar/node_modules/event-kit/lib/emitter.js:25:14)
    at Emitter.module.exports.Emitter.emit (/Applications/Atom Beta.app/Contents/Resources/app.asar/node_modules/event-kit/lib/emitter.js:125:28)
    at /Users/viktor/.atom/packages/linter/lib/indie-registry.js:27:20
    at Function.module.exports.Emitter.simpleDispatch (/Applications/Atom Beta.app/Contents/Resources/app.asar/node_modules/event-kit/lib/emitter.js:25:14)
    at Emitter.module.exports.Emitter.emit (/Applications/Atom Beta.app/Contents/Resources/app.asar/node_modules/event-kit/lib/emitter.js:125:28)
    at Indie.setMessages (/Users/viktor/.atom/packages/linter/lib/indie.js:15:18)
    at Object.module.exports.indieLinter.addScalaNotes (/Users/viktor/dev/projects/atom-ensime/lib/features/typechecking.coffee:32:19)
    at module.exports.Ensime.statusbarOutput (/Users/viktor/dev/projects/atom-ensime/lib/ensime.coffee:208:20)
    at SwankParser.onMessage (/Users/viktor/dev/projects/atom-ensime/lib/client.coffee:34:9)
    at SwankParser.handleMessage (/Users/viktor/dev/projects/atom-ensime/lib/ensime-client/lisp/swank-protocol.js:77:8)
    at SwankParser.handleContent (/Users/viktor/dev/projects/atom-ensime/lib/ensime-client/lisp/swank-protocol.js:64:10)
    at SwankParser.execute (/Users/viktor/dev/projects/atom-ensime/lib/ensime-client/lisp/swank-protocol.js:55:20)
    at Socket.<anonymous> (/Users/viktor/dev/projects/atom-ensime/lib/client.coffee:51:15)
    at emitOne (events.js:77:13)
    at Socket.emit (events.js:169:7)
    at readableAddChunk (_stream_readable.js:146:16)
    at Socket.Readable.push (_stream_readable.js:110:10)
    at TCP.onread (net.js:523:20)

Would it be possible to add the alternative range formats to support our use case?

We can not support alternative range formats, but we can help you transform those alternative range formats to the standard range format. You can use the buffer position helper to convert a character index into a position

Update:
Sorry, I realize that the stack trace I got is from your usage of JSON.stringify. I guess I got to many errors and warnings?

@hedefalk That error happens everytime you give an empty text or html field, linter has been tested to work with upto 8k messages

@steelbrain That's exactly what I did before. Problem is I don't want to open up textbuffer for every warning in a huge project for files that aren't even shown.
But fair enough, I will try to modify the range format of the backend instead.

Ok! Cool, I'll look into if I have any empty messages than!

Also you already have the line number, if somehow you can not change the backend, you can do

Check if a buffer exists for that file path, if yes then use the correct range
Show a fake range where row is correct but start offset is set to zero and end offset set to Infinity
Everytime the user clicks the message to open that file, that file is opened and your text editor observer is called and you re-paint the messages of the newly opened file with correct coords

@steelbrain Thanks for the tips!

@steelbrain Sorry to spam you but you seem really helpful so I'll punish you with follow up questions:
All my lints have "msg" on them. However, something is very wrong. My atom instance dies at about 30 messages. I did a profiling and found the following:

Setting a breakpoint on my lints generation and doing JSON.stringify I noticed that for each push to the array the key-field is building up with weird super-escaped totalness:
This is for just 3 adds:
"[{"type":"Error","text":"not found: value asdf","range":{"start":{"row":23,"column":2},"end":{"row":23,"column":6}},"filePath":"/Users/viktor/dev/projects/kostbevakningen/src/main/scala/se/kostbevakningen/session/UserSession.scala","html":null,"trace":null,"class":"error","key":"{\"type\":\"Error\",\"text\":\"not found: value asdf\",\"range\":{\"start\":{\"row\":23,\"column\":2},\"end\":{\"row\":23,\"column\":6}},\"filePath\":\"/Users/viktor/dev/projects/kostbevakningen/src/main/scala/se/kostbevakningen/session/UserSession.scala\",\"html\":null,\"trace\":null,\"class\":\"error\"}"}]"

"[{"type":"Error","text":"not found: value asdf","range":{"start":{"row":23,"column":2},"end":{"row":23,"column":6}},"filePath":"/Users/viktor/dev/projects/kostbevakningen/src/main/scala/se/kostbevakningen/session/UserSession.scala","html":null,"trace":null,"class":"error","key":"{\"type\":\"Error\",\"text\":\"not found: value asdf\",\"range\":{\"start\":{\"row\":23,\"column\":2},\"end\":{\"row\":23,\"column\":6}},\"filePath\":\"/Users/viktor/dev/projects/kostbevakningen/src/main/scala/se/kostbevakningen/session/UserSession.scala\",\"html\":null,\"trace\":null,\"class\":\"error\",\"key\":\"{\\\"type\\\":\\\"Error\\\",\\\"text\\\":\\\"not found: value asdf\\\",\\\"range\\\":{\\\"start\\\":{\\\"row\\\":23,\\\"column\\\":2},\\\"end\\\":{\\\"row\\\":23,\\\"column\\\":6}},\\\"filePath\\\":\\\"/Users/viktor/dev/projects/kostbevakningen/src/main/scala/se/kostbevakningen/session/UserSession.scala\\\",\\\"html\\\":null,\\\"trace\\\":null,\\\"class\\\":\\\"error\\\"}\"}"},{"type":"Warning","text":"Unused import","range":{"start":{"row":3,"column":30},"end":{"row":3,"column":74}},"filePath":"/Users/viktor/dev/projects/kostbevakningen/src/test/scala/se/kostbevakningen/model/interpretations/InterpretationSorterTest.scala","html":null,"trace":null,"class":"warning","key":"{\"type\":\"Warning\",\"text\":\"Unused import\",\"range\":{\"start\":{\"row\":3,\"column\":30},\"end\":{\"row\":3,\"column\":74}},\"filePath\":\"/Users/viktor/dev/projects/kostbevakningen/src/test/scala/se/kostbevakningen/model/interpretations/InterpretationSorterTest.scala\",\"html\":null,\"trace\":null,\"class\":\"warning\"}"}]"

"[{"type":"Error","text":"not found: value asdf","range":{"start":{"row":23,"column":2},"end":{"row":23,"column":6}},"filePath":"/Users/viktor/dev/projects/kostbevakningen/src/main/scala/se/kostbevakningen/session/UserSession.scala","html":null,"trace":null,"class":"error","key":"{\"type\":\"Error\",\"text\":\"not found: value asdf\",\"range\":{\"start\":{\"row\":23,\"column\":2},\"end\":{\"row\":23,\"column\":6}},\"filePath\":\"/Users/viktor/dev/projects/kostbevakningen/src/main/scala/se/kostbevakningen/session/UserSession.scala\",\"html\":null,\"trace\":null,\"class\":\"error\",\"key\":\"{\\\"type\\\":\\\"Error\\\",\\\"text\\\":\\\"not found: value asdf\\\",\\\"range\\\":{\\\"start\\\":{\\\"row\\\":23,\\\"column\\\":2},\\\"end\\\":{\\\"row\\\":23,\\\"column\\\":6}},\\\"filePath\\\":\\\"/Users/viktor/dev/projects/kostbevakningen/src/main/scala/se/kostbevakningen/session/UserSession.scala\\\",\\\"html\\\":null,\\\"trace\\\":null,\\\"class\\\":\\\"error\\\",\\\"key\\\":\\\"{\\\\\\\"type\\\\\\\":\\\\\\\"Error\\\\\\\",\\\\\\\"text\\\\\\\":\\\\\\\"not found: value asdf\\\\\\\",\\\\\\\"range\\\\\\\":{\\\\\\\"start\\\\\\\":{\\\\\\\"row\\\\\\\":23,\\\\\\\"column\\\\\\\":2},\\\\\\\"end\\\\\\\":{\\\\\\\"row\\\\\\\":23,\\\\\\\"column\\\\\\\":6}},\\\\\\\"filePath\\\\\\\":\\\\\\\"/Users/viktor/dev/projects/kostbevakningen/src/main/scala/se/kostbevakningen/session/UserSession.scala\\\\\\\",\\\\\\\"html\\\\\\\":null,\\\\\\\"trace\\\\\\\":null,\\\\\\\"class\\\\\\\":\\\\\\\"error\\\\\\\"}\\\"}\"}"},{"type":"Warning","text":"Unused import","range":{"start":{"row":3,"column":30},"end":{"row":3,"column":74}},"filePath":"/Users/viktor/dev/projects/kostbevakningen/src/test/scala/se/kostbevakningen/model/interpretations/InterpretationSorterTest.scala","html":null,"trace":null,"class":"warning","key":"{\"type\":\"Warning\",\"text\":\"Unused import\",\"range\":{\"start\":{\"row\":3,\"column\":30},\"end\":{\"row\":3,\"column\":74}},\"filePath\":\"/Users/viktor/dev/projects/kostbevakningen/src/test/scala/se/kostbevakningen/model/interpretations/InterpretationSorterTest.scala\",\"html\":null,\"trace\":null,\"class\":\"warning\",\"key\":\"{\\\"type\\\":\\\"Warning\\\",\\\"text\\\":\\\"Unused import\\\",\\\"range\\\":{\\\"start\\\":{\\\"row\\\":3,\\\"column\\\":30},\\\"end\\\":{\\\"row\\\":3,\\\"column\\\":74}},\\\"filePath\\\":\\\"/Users/viktor/dev/projects/kostbevakningen/src/test/scala/se/kostbevakningen/model/interpretations/InterpretationSorterTest.scala\\\",\\\"html\\\":null,\\\"trace\\\":null,\\\"class\\\":\\\"warning\\\"}\"}"},{"type":"Warning","text":"Unused import","range":{"start":{"row":7,"column":34},"end":{"row":7,"column":89}},"filePath":"/Users/viktor/dev/projects/kostbevakningen/src/test/scala/se/kostbevakningen/model/interpretations/InterpretationSorterTest.scala","html":null,"trace":null,"class":"warning","key":"{\"type\":\"Warning\",\"text\":\"Unused import\",\"range\":{\"start\":{\"row\":7,\"column\":34},\"end\":{\"row\":7,\"column\":89}},\"filePath\":\"/Users/viktor/dev/projects/kostbevakningen/src/test/scala/se/kostbevakningen/model/interpretations/InterpretationSorterTest.scala\",\"html\":null,\"trace\":null,\"class\":\"warning\"}"}]"

Current guess is that indie api doesn't support multiple calls to setMessages without a deleteMessages()call inbetween, gonna try that now…

Please note that the messages set by Indie API have a scope set to Project. So if you set messages twice, the previous messages will be replaced by the new ones.
Another thing to note is that, you must provide different objects to linter each time you set messages, if you send in the same objects you'll be screwing up a lot of optimizations and weird things like ^ that one will appear.
By different I mean {} !== {}, but a = {}; a === a. Therefore you should not store your messages somewhere and keep setting them again and again, you should construct completely new objects. But, if your backend doesn't support giving you a new message object each time you want to do that, you can always JSON.stringify then JSON.parse the messages before sending them to linter, this will create new objects of the same structure

Ah, ok. Yeah, backend sends me messages incrementally so I need to store them and add on each bunch received. So a setMessages(JSON.parse(JSON.stringify(messages))) will make it a ok?

That should work

@steelbrain Thanks, that seems to work!


Free sudo calls?

Dear substrate,
I don't know if it should work this way, but when we use ensure_root and
call our extrinsic
await api.tx.sudo.sudo(api.tx.access.access('5CiKbPQtCW6X6oFpsLLJ8vSUEzqSYnUkWuoqkp41iDevMBK6', [1,2])).signAndSend(pair)

we have to pay some fee eventhough we have the following weigth annotation
#[weight = (100_000, DispatchClass::Normal, Pays::No)]

Is it possible for sudo calls to be free as well?

sudo should already be free when the extrinsic is successful (i.e. signed by sudo) as it returns Pays::No:
		fn sudo(origin, call: Box<<T as Trait>::Call>) -> DispatchResultWithPostInfo {
			// This is a public call, so we ensure that the origin is some signed account.
			let sender = ensure_signed(origin)?;
			ensure!(sender == Self::key(), Error::<T>::RequireSudo);

			let res = call.dispatch_bypass_filter(frame_system::RawOrigin::Root.into());
			Self::deposit_event(RawEvent::Sudid(res.map(|_| ()).map_err(|e| e.error)));
			// Sudo user does not pay a fee.
			Ok(Pays::No.into())
		}

What is exactly your sudo extrinsic ?
also the current sudo does not pay fee only if the extrinsic is successful, that means that the signer must be able to pay the fee for the transaction to be valid (in case the transaction is not successful).
but indeed the following pattern
#[weight = (100_000, DispatchClass::Normal, Pays::No)]

shouldn't require the signer to be able to pay the fee (because no matter what he won't pay for it), is this your issue ?

Yeah because of ensure_root instead of ensure_signed inside of the function body with the following annotation
#[weight = (100_000, DispatchClass::Normal, Pays::No)] it charges a fee of +- 250000000

@noahsalvadordenjo this is solved in the latest versions of Substrate: https://github.com/paritytech/substrate/pull/6749
There is not much we can do about RC-4 I think, but you should get the expected behavior moving forward.

(note I closed because I couldn't reproduced on rc-6 and shawn says it was fixed, if you still have issue, feel free to reopen)

couldn't reproduce as well


Add ability to create order from dashboard

Staff users should be able to create orders from dashboard.

As I wrote in the related pull request, we're holding this feature for now. We've recently added the ability to impersonate users, which is the recommended way to create orders by staff users.

I met some problems during work on this issue.

What about updating discount amount with voucher applied?
For example: staff user sets shipping method with price $26 and then adds a voucher for free shipping. Discount amount is $26. If a shipping method will be changed now to a method with different price, e.g. $56, should we update a discount amount? If not, it can lead to a situation, when order with total value less than zero can be created. Same problem is with all types of vouchers.
In my opinion, it would be better to update discount amount every time it's value changes.
Should we update an order's discount_amount in draft orders if referenced voucher gets updated?
Should we add an ability to create order with no user or user_email provided? Storefront does not allow to do this, but maybe dashboard should.
We have two actions for modifying shipping, discount and customer (in progress) - edit and remove. Now they exist in dropdown menu, but maybe they should be in one modal opened on clicking edit button with Cancel/Update actions on the right and Remove action on the left?

For 3), in my own implementation of the order creation form, there is two types of customers:

Registered customer (selected from dropdown);
Anonymous User (no customer selected).

In my context, anonymous orders are quick IRL checkouts made by the cashier. So the cashier doesn't need to enter enter the customer information when purchasing IRL if the customer doesn't have an account and doesn't want to give us the information. So, the email address of the user is let blank in checkout and addresses blank as well.
Only thing we need is the invoice (and to allow to mark the order as paid and capture a fake full order amount as the payment was IRL and not through Paypal or anything else online requiring a callback).

I have a question about taxes, we should be able to choose what tax rate to apply on the order (at least, it's a requirement I have and must respect on my side, if you are okay with it).
But, tax support will be implemented and merged during April from #1929, while #1971 will be merged way before.
First, do you think we should implement a way to choose the tax rate on order creation form? (and default it to settings default one).
Second, how and when should it be implemented?
My biggest concern is there is a risk of not taking some changes into account as we are creating orders (in #1971 as I write this), through Order.objects.create(...) and not like we would be doing during a checkout, through Checkout.create_order(...) as most of the order creation logic is inside it.

I think the ability to add orders without customer's data (addresses, email etc.) could be useful in some cases and we'll support it.
As for the taxes, I think we'll tackle it in #1929. I'm not familiar with tax calculation laws and rules yet so I can't tell what's the correct implementation here.


View Create Package: Add/Update package

Description
In step 4 of creating a package we need a service to store everything.
service. (p.43)
Implementation
POST /package
{
  data: {
   ...
  }
}

Should return the created entity.
Estimated Workload:
Actual Workload:

Should be package header incl. ids, provider, alternate names etc., but without tipps.

Actual has errors and is not complete.

what errors?


aider-chat: 0.54.0 -> 0.56.0

Diff: https://github.com/paul-gauthier/aider/compare/refs/tags/v0.54.0...v0.56.0
Changelog: https://github.com/paul-gauthier/aider/blob/v0.56.0/HISTORY.md
Description of changes

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

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

2 packages built:

aider-chat
aider-chat.dist

A dependency seems broken (litellm?) with nix run github:nixos/nixpkgs/pull/341015/head#aider-chat --sandbox
There's a runtime exception when entering a prompt:
Exception while updating files:
module 'litellm.llms.anthropic' has no attribute 'AnthropicError'
Traceback (most recent call last):
  File "/nix/store/9jiyln4fdflxd1jbqb5n68pfmcrjmg6m-aider-chat-0.56.0/lib/python3.11/site-packages/aider/coders/base_coder.py", line 1804, in apply_updates
    edits = self.prepare_to_edit(edits)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/9jiyln4fdflxd1jbqb5n68pfmcrjmg6m-aider-chat-0.56.0/lib/python3.11/site-packages/aider/coders/base_coder.py", line 1795, in prepare_to_edit
    self.dirty_commit()
  File "/nix/store/9jiyln4fdflxd1jbqb5n68pfmcrjmg6m-aider-chat-0.56.0/lib/python3.11/site-packages/aider/coders/base_coder.py", line 1922, in dirty_commit
    self.repo.commit(fnames=self.need_commit_before_edits)
  File "/nix/store/9jiyln4fdflxd1jbqb5n68pfmcrjmg6m-aider-chat-0.56.0/lib/python3.11/site-packages/aider/repo.py", line 102, in commit
    commit_message = self.get_commit_message(diffs, context)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/9jiyln4fdflxd1jbqb5n68pfmcrjmg6m-aider-chat-0.56.0/lib/python3.11/site-packages/aider/repo.py", line 187, in get_commit_message
    commit_message = simple_send_with_retries(
                     ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/9jiyln4fdflxd1jbqb5n68pfmcrjmg6m-aider-chat-0.56.0/lib/python3.11/site-packages/aider/sendchat.py", line 38, in wrapper
    retry_exceptions(),
    ^^^^^^^^^^^^^^^^^^
  File "/nix/store/9jiyln4fdflxd1jbqb5n68pfmcrjmg6m-aider-chat-0.56.0/lib/python3.11/site-packages/aider/sendchat.py", line 30, in retry_exceptions
    litellm.llms.anthropic.AnthropicError,
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'litellm.llms.anthropic' has no attribute 'AnthropicError'

requirements.txt asks for litellm==1.44.7 so possibly https://github.com/NixOS/nixpkgs/pull/340757 is what breaks aider

is there a local expression we can use to use packageOverrides to make it work locally?


fixed xaml generated enum value not being globalized

GitHub Issue (If applicable): #n/a
PR Type
What kind of change does this PR introduce?
Bugfix
What is the current behavior?
Source generator doesn't prefix enum value with global::.
What is the new behavior?
Source generator now prefixes enum value with global::.
PR Checklist
Please check if your PR fulfills the following requirements:

[x] Tested code with current supported SDKs
[ ] Docs have been added/updated which fit documentation template. (for bug fixes / features)
[ ] Unit Tests and/or UI Tests for the changes have been added (for bug fixes / features) (if applicable)
[ ] Wasm UI Tests are not showing unexpected any differences
[x] Contains NO breaking changes
[ ] Updated the Release Notes
[ ] Associated with an issue (GitHub or internal)

Other information
Given this xaml file:
<Page x:Class="Umbrella.View.Samples.Uno.Shared.Controls.AnimatedControl.BlankPage1"
      xmlns:toolkit="using:Uno.UI.Toolkit">
    <Grid toolkit:VisibleBoundsPadding.PaddingMask="All" />

The source generator would output:
namespace Umbrella.View.Samples.Uno.Shared.Controls.AnimatedControl {
	public sealed partial class BlankPage1 : Windows.UI.Xaml.Controls.Page {
		private void InitializeComponent() {
			Content = new global::Windows.UI.Xaml.Controls.Grid { }
			.BlankPage1_8eaa93b89dda833674fc4fbe33b6667b_XamlApply((BlankPage1_8eaa93b89dda833674fc4fbe33b6667bXamlApplyExtensions.XamlApplyHandler0)(c0 =>
			{
				global::Uno.UI.Toolkit.VisibleBoundsPadding.SetPaddingMask(c0, Uno.UI.Toolkit.VisibleBoundsPadding.PaddingMask.All);

And, Uno.UI... will never be found because Umbrella.View.Samples.Uno.UI never existed.
Internal Issue (If applicable):
https://feedback.nventive.com/communities/1/topics/3511-the-type-or-namespace-name-ui-does-not-exist-in-the-namespace-umbrellaviewsamplesuno

You can add a test for this in the XamlGenerationTests project. It should just be a file with xaml that would have failed prior to the fix.

Also - release notes


Arrange autconf/makefile logic to work without apr.

Note it might not be finished.

Thanks!

It still needs some work but the code too as you still have some #include "apr*.h" in most of the C files.


feat: template for vmalert rules configuration

Overview
vmalert rules are currently fixed in roles/vmalert/files/alerts.yml. This is not flexible, so I changed it to use templates module to increase flexibility and reusability.

@hunter9x Thank you for contribution!
Would you mind extending this a little more?
Current implementation configures one group called ansible managed..., it would be great if variable could store just an array of groups. That would allow users to configure rules and join those into groups as users would need it, but not how role defines it.